2

メールは正常に通過しますが、リンクは次のようになります:x-msg://63/'www.something.com/'

$from_user = $_POST["fromuser"];
$subject = $_POST["subject"];

$headers = "From: $from_user <{$_POST['fromemail']}>\r\n". 
               "MIME-Version: 1.0" . "\r\n" . 
               "Content-type: text/html; charset=UTF-8" . "\r\n" .  "X-Mailer: PHP/" . phpversion();

     if(mail($_POST["toemail"], $_POST["subject"], wordwrap(urldecode($_POST["ebody"]),70), $headers)){
     ...
     }

サーバー関連ですか?

本体のコード:

$this->ebody = "<html><head><title>" . $this->subject . "</title></head><body>
<img src='$imageurl' height='65px'><p><strong>AUTOMATED ORDER FORM.</strong>

</p>Please do not reply this message.<p>" . $body . "</p><hr>All Rights Reserved.<br><a href='http://www.something.com'>Company Name.</a></body></html>";

結果の電子メール(生のソース):

> To: ###@gmail.com Subject: New Order - 14/06/12 MIME-Version: 1.0
> Content-type: text/html; charset=utf-8 X-Priority: 3 X-Mailer:
> PHP5.2.9 From: KSONE <noreply.ksone@something.com> Reply-To: Sales
> <sales@something.com>
> 
> 
> <html><head><title></title></head><body><img
> src=\"http://www.something.com/imgs/logo.png\"
> height=\'65px\'><p><strong>AUTOMATED VENDOR ORDER
> FORM.</strong></p>Please do not reply this message 027777777<p>Hello
> World!</p><hr>1/76 All Rights Reserved 12120.<br><a
> href=\'http://www.something.com\'>Company Co., Ltd.</a></body></html>
4

2 に答える 2

9

AFAIKx-msg://は、有効なスキームを持たないすべてのリンクにMail.appが付加するプレースホルダースキームです。言い換えると、リンクはおそらく://foo/bar似たようなものになります。その場合、Mail.appx-msgは完全で有効なURIを作成するために挿入します。

アプリ内のリンクを修正して、完全で有効なURLを送信します。

于 2012-06-14T12:51:18.787 に答える
1

解決済み:質問で省略したことが原因でした。リモートメール対応サーバーでAPIを作成しました。これは、ローカルスクリプトがCURLを介してPOSTリクエストを作成します。CURLリクエストは正常に処理されましたが、出力された電子メールは誤ってエスケープされます。これは、POST変数に対してurlencodeを実行しなかったため、クレイジーなことが発生したためです。

于 2012-06-15T17:21:08.907 に答える