Keep It Real BLOG

ソフトウェアエンジニア。1児の父。 酒、ラーメン、サッカー好き。旅行も好きですが、普段は出不精で大抵たまプラーザ界隈に居ます。

send_mailやmb_send_mailでメールが届かない場合

単純にsend_mailでメールを飛ばすだけだと、セキュリティが強めの相手方のメールサーバには、スパムメール扱いされてしまって、メールが届かない場合があったりします。

そういった場合は、メール送信側でちゃんと、ヘッダー指定してあげてとのこと。

$header = "MIME-Version: 1.0\r\n"
	  . "Content-Transfer-Encoding: 7bit\r\n"
	  . "Content-Type: text/plain; charset=ISO-2022-JP\r\n"
	  . "Message-Id: <" . md5(uniqid(microtime())) . "@ドメイン>\r\n"
	  . "From: サイト名 <送信元メールアドレス>\r\n";
$body = "内容";
mb_send_mail("送信先メールアドレス", "件名", $body, mb_encode_mimeheader($header), "-f エラーが起きた際のメール飛び先");

これで、割とセキュリティ強めなとこでも、メールがちゃんと飛びました。
これでも飛ばなかったら、メールサーバの管理者などに問い合わせてみる必要があるかもしれないですね。
※エンコードはご自身の環境で。