7

何らかの理由で、私が構築しているサイトで php の mail() 関数が正しく機能していません。この問題を最も単純な形式でトラブルシューティングしようとしたところ、次のファイルが作成されました。

<?php
mail('myEmail@gmail.com', 'the subject', 'the message', 'From: webmaster@example.com', '-fwebmaster@example.com');
?>

myEmail が Gmail アカウントの場合、メッセージを受信しません。ただし、Gmail 以外のアカウントを使用すると、メッセージが届きます。私は途方に暮れており、これを理解するためにあらゆることを試みました。ホスト/サーバーのあいまいな問題だと思い始めています。ここでサーバーの仕様を確認できます: http://aopmfg.com/php.php

何か案は?

編集-これは、数週間前、最後にテストしたときにすべて正常に機能していたことも付け加えておきます。それ以来、大幅なコードの変更はまったくありません。

EDIT 2 - 同様の投稿を読んだ後、From ヘッダーと Reply-To ヘッダーを追加しようとしましたが、まだ運がありません。新しいコード:

<?
$headers = 'From: <some@email.com>' . "\r\n" .
'Reply-To: <some@email.com>';

mail('<myEmail@gmail.com>', 'the subject', 'the message', $headers,
'-fwebmaster@example.com');
?>
4

6 に答える 6

11

同じサーバー上の別のサイトがハッキングされ、スパムに使用されたため、Google が私のサーバーをブロックしたことが判明しました。

サーバーの問題であることをテストして確認するために、ページの更新時にメール アドレスにメールを送信する単純な PHP ファイルを作成しました。Exchange ベースのメール アドレスに送信すると機能しましたが、Google 関連のアカウントには機能しませんでした。

コード:

$headers = 'From: <test@test.com>' . "\r\n" .
'Reply-To: <test@test.com>';

mail('<myEmail@gmail.com>', 'the subject', 'the message', $headers,
  '-fwebmaster@example.com');
?>

助けてくれてありがとう。

于 2012-04-23T01:22:36.760 に答える
5

FromアドレスとReplytoアドレスの周りに<>を付けてみてください。仕事用のメールでも同じ問題が発生しました。

于 2012-04-05T02:03:05.603 に答える
1

gmailでも同様の問題がありました。しかし、私の件名は「勝ったかどうか見てください」でした。これをマーケティング/スパムの少ないものに変更したところ、うまくいきました。したがって、これを引き起こしているのは必ずしも PHP コードではありませんが、ブラックリストに登録されている件名でもある可能性があります。

于 2013-11-04T10:03:24.183 に答える
0

SPF および DKIM レコードを DNS に追加すると、問題が解決することがわかりました。phpmail() 関数を使用して、Gmail サブスクライバーのリストに送信できます。

  1. php.ini の sendmail パラメータまたは mail() 追加パラメータ フィールドの -f オプションで使用される電子メールのドメインには、ドメインの有効な SPF レコードが必要です。
  2. ドメイン キーまたは DKIM も使用する必要があります。ここでの秘訣は、ドメイン キー/DKIM で大文字と小文字が区別されることです。

レコードを更新すると、メールは Gmail、Yahoo、および AOL のアドレスに配信されます。

ここでソースを読んでください。ABOMBのコメント

https://www.php.net/manual/en/function.mail.php#107321

于 2020-06-28T06:26:46.890 に答える