POST-MAIL 修正覚書き
2024/06/23(Sun) 01:45:10
ここのところ、メールフォームが不通になっていた件で騒いでいましたが、無事修正完了しましたので覚え書きを。
【前提】
KENT WEBさんのPOST-MAIL(https://www.kent-web.com/mail/postmail.html)を使用
さくらインターネットのサーバーを使用
さくらインターネットの設定では、SPF、DKIM、DMARCは設定済み
gmailのアドレスに対してメールフォームに打ち込まれた内容を送信
私(野堀)はcgiのことについて、何にもわからない
【原因】
Googleのセキュリティ強化により、POST-MAILでの送信時に、sendmailのサーバー名と送信者のメールアドレスのサーバー名が異なることで不審なメールとして弾かれていた。
【参考】
KENT-WEBサポート掲示板の投稿、No.17625
【実際にやったこと】
init.cgiに、
を追加。
init.cgiの、
0を1に変更。
postmail.cgiの、
を、
に置き換え。 → これは必要なかったかも?
postmail.cgiの、
を、
に置き換え。
【要するになんだったの?】
今、メール周りのセキュリティが強化されているそうで、
の二つが一致しないとスパム扱いされて弾かれてしまうとのこと。
うちのメールフォームの場合は、sendmailはuiyun.mimoza.jpなのに、メールにある送信者のアドレスはメールフォームを記入されたメール送信者のかたのメールアドレスになっているため(空欄の場合は、私のメールアドレスに置き換えられています)、一致せず弾かれたということです。
なのでPOST-MAIL側をいじって、メールフォームの送信者を「メール送信者が入力したメールアドレスの流用」から「サーバーから提供されているメールアドレス」に変更しました。これで、sendmailのサーバーと送信者のメールアドレスのサーバーがuiyun.mimoza.jpで一致したため、怪しくないメールとGoogleに認識され、無事メールが届くようになった、ということです。
これ、サーバー側からメールが提供されているので事なきを得ましたけど、メールが提供されていないサーバーだったらどうするんでしょうね……。
#ウェブ備忘録
【前提】
KENT WEBさんのPOST-MAIL(https://www.kent-web.com/mail/postmail.html)を使用
さくらインターネットのサーバーを使用
さくらインターネットの設定では、SPF、DKIM、DMARCは設定済み
gmailのアドレスに対してメールフォームに打ち込まれた内容を送信
私(野堀)はcgiのことについて、何にもわからない
【原因】
Googleのセキュリティ強化により、POST-MAILでの送信時に、sendmailのサーバー名と送信者のメールアドレスのサーバー名が異なることで不審なメールとして弾かれていた。
【参考】
KENT-WEBサポート掲示板の投稿、No.17625
【実際にやったこと】
init.cgiに、
# メールフォーム送信者のアドレス
# → SPF、DKIM、DMARC対策
$cf{mailfrom} = '(適当な文字列)@uiyun.mimoza.jp';
を追加。
init.cgiの、
# sendmailへの-fコマンド(プロバイダの仕様確認)
# 0 : no
# 1 : yes
$cf{send_fcmd} = 1;
0を1に変更。
postmail.cgiの、
# メールアドレスがない場合は送信先に置き換え
my $email = $$in{email} eq '' ? $cf{mailto} : $$in{email};
を、
# メールアドレスがない場合はサーバーのメアドに置き換え
my $email = $$in{email} eq '' ? '(適当な文字列)@uiyun.mimoza.jp' : $$in{email};
に置き換え。 → これは必要なかったかも?
postmail.cgiの、
$body .= "From: $from\n";
を、
$body .= "From: $cf{mailfrom}\n";
に置き換え。
【要するになんだったの?】
今、メール周りのセキュリティが強化されているそうで、
- メールに書かれた送信者のメールアドレス
- 実際に送ってきたメールサーバー(今回の場合はsendmailを提供しているサーバー名)
の二つが一致しないとスパム扱いされて弾かれてしまうとのこと。
うちのメールフォームの場合は、sendmailはuiyun.mimoza.jpなのに、メールにある送信者のアドレスはメールフォームを記入されたメール送信者のかたのメールアドレスになっているため(空欄の場合は、私のメールアドレスに置き換えられています)、一致せず弾かれたということです。
なのでPOST-MAIL側をいじって、メールフォームの送信者を「メール送信者が入力したメールアドレスの流用」から「サーバーから提供されているメールアドレス」に変更しました。これで、sendmailのサーバーと送信者のメールアドレスのサーバーがuiyun.mimoza.jpで一致したため、怪しくないメールとGoogleに認識され、無事メールが届くようになった、ということです。
これ、サーバー側からメールが提供されているので事なきを得ましたけど、メールが提供されていないサーバーだったらどうするんでしょうね……。
#ウェブ備忘録