1

メールを送信するときに非常に奇妙な問題があります。おそらく修正は非常に簡単ですが、オンラインで答えが見つかりません。

私の JQuery Mobile Phonegap アプリケーションの ajax は (簡略化されています):

$.ajax({
    url: 'http://mysite.com/ajax/app/email.php',
    type: "POST",
    dataType: "text",
    data: {
        email: $('#email').val(),
    },
    success: function(data) {
        alert('done!')
    }
});

私の email.php ファイルのコードは (ここでも簡略化されています):

<?php
$email = $_POST['email'];
$headers = 'From: MySite <admin@mysite.com>' . "\r\n" .
    'Reply-To: MySite <admin@mysite.com>' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();
$msg = "Welcome to MySite!";
@mail($email, 'Hello', $msg, $headers);

電子メールは正常に送信されますが、admin@mysite.com からではなく、myaccount@web54.justhost.com から送信されています。email.php スクリプトと同じサーバーに保存されている HTML5 アプリから同じ ajax クエリを実行すると、正しいメール アドレスからメールが送信されます。

何か案は?サーバーとすべてのサブドメインをホワイトリストに登録しました。他に何をすべきかわかりません。

4

1 に答える 1

1

mail()-fの 5 番目のパラメーターを使用して、フラグ付きのメール アドレスを渡してみてください。これにより、エンベロープ送信者として使用するアドレスを MTA が認識できるようになります。

このコードが機能するかどうかを確認します。

mail($email, 'Hello', $msg, $headers, '-fadmin@mysite.com');

PHP の mail() 関数に関する情報については、上記のメール リンクを参照し、Exim ドキュメントの Exim コマンド ライン-fを検索してください。

PHP バージョンでsafe_modeが有効になっている場合は、無効にする必要があります。

于 2012-06-13T02:44:36.797 に答える