-2

PHPのメール機能を利用してメールを送信しています。aol、hotmail.com、msn などの電子メール クライアントの一部のアドレスで受信できません。Gmail は正常に動作します。Gmail は通過できるが、他は通過できないので、奇妙だと思います。

$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; 

$headers = "From: $from";
$headers .= "\r\nMIME-Version: 1.0\r\n" .
         "Content-Type: multipart/mixed;\r\n" .
         " boundary=\"{$mime_boundary}\"";

そして、次を使用してメールを送信しています:

$ok = @mail($to, $subject, $message, $headers);

診断目的で、$header文字列には次が含まれます。

From: xxx@example.com
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="==Multipart_Boundary_xd31b2fcd6941ba77b38f866330c24944x"

$message文字列には次が含まれます。

This is a multi-part message in MIME format.
--==Multipart_Boundary_x0dde39863d56158409aa962fc1dd9a3bx
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

The email message appears here

--==Multipart_Boundary_x0dde39863d56158409aa962fc1dd9a3bx
Content-Type: {"application/octet-stream"};
name="afile.pdf"
Content-Disposition: attachment;
filename="afile.pdf"
Content-Transfer-Encoding: base64

The attachment's contents here

--==Multipart_Boundary_x0dde39863d56158409aa962fc1dd9a3bx
4

1 に答える 1

0

aol、hotmail.com、msn などの電子メール クライアントの一部のアドレスで受信できない

コードは、これを調査するのに最適な場所ではありません。最初に、メール ログとバウンス メッセージを確認してください。最も可能性の高い原因は、メールがスパムとしてフラグ付けされていることです。これは、自分でメールボックスを設定してメッセージを送信することで確認できます。メールがスパムとしてフラグ付けされないようにする方法は、ここで何度も尋ねられ、回答されてきた質問です.

ヘッダーが正しいかどうかわかりません

生成された電子メールとヘッダーの例 (適切なサイズにトリミングされています) を見ると、非常に役に立ちます。

于 2013-09-18T08:00:47.910 に答える