ローカルサーバーにPostfixをインストールしました(Ubuntu 16.04はVirtualboxを実行しました)。Gmailにメールを送信することはできません。他のメールボックスでは機能しますが、Gmailでは機能しません。
これが私の簡単なPHPスクリプトです。
$headers ='From: "nom"<[email protected]>'."\n";
$headers .='Reply-To: [email protected]'."\n";
$headers .='Content-Type: text/plain; charset="iso-8859-1"'."\n";
$headers .='Content-Transfer-Encoding: 8bit';
$address = '[email protected]';
$test_mail = mail($address, 'My subject', 'My message', $headers);
if($test_mail == true)
{
echo 'Email sent';
}
else
{
echo 'Cannot send the email';
}
/var/mail/web
ファイルにエラーメッセージがあることに気付きました。
Final-Recipient: rfc822; [email protected]
Original-Recipient: rfc822;[email protected]
Action: failed
Status: 5.7.1
Remote-MTA: dns; gmail-smtp-in.l.google.com
Diagnostic-Code: smtp; 550-5.7.1 [2a01:e35:2430:e090:a00:27ff:fe23:1da]
Our system has detected that 550-5.7.1 this message does not meet IPv6 sending guidelines regarding PTR 550-5.7.1 records and authentication. Please review 550-5.7.1 https://support.google.com/mail/?p=IPv6AuthError for more information
550 5.7.1 . ay9si74475139wjc.120 - gsmtp
そこで、main.cf
ファイルの次の行を変更しました。
inet_protocols = ipv4
/var/mail/web
ファイルにエラーメッセージはなくなりましたが、Gmailボックスにメールが届きません。
確認したのは https://support.google.com/mail/?p=IPv6AuthError SMTP応答の提案と同様ですか?
TL; DR:GMailは、スパムを回避するために、送信者の正当性を検証する電子メールヘッダーとDNSレコードの特定のエントリを想定しています。これはIPv4とIPv6の両方の送信者に適用されますが、具体的な期待は異なる場合があります。
これらのエントリを配置する方法は広すぎて、Ubuntuとはほとんど関係がないため、AskUbuntuのトピックから外れています。そのような質問については、姉妹サイト Server Fault を参照してください。