※ ChatGPTを利用し、要約された質問です(原文:sendmailで送信すると、迷惑メールになります)
sendmailでのメール送信時に迷惑メールになってしまう問題
このQ&Aのポイント
フォームに入力された内容をperlのsendmailで送信すると、迷惑メールに入ってしまいます。
送信されたメールが文字化けしてしまう問題があります。
プログラムの一部を修正することで問題を解決できるかどうか知りたいです。
sendmailで送信すると、迷惑メールになります
フォームに入力された内容をperlでsendmailを使って送信すると、ウイルス対策ソフトの判定で、迷惑メールに入ってしまいます。
▼プログラム
$subject = 'テストメール';
$msg = "------------------------------------------------------------------
[名前]
$name
[住所]
$address
------------------------------------------------------------------";
# subjectをBase64エンコード
jcode::convert(\$subject, 'euc');
jcode::convert(\$subject, 'jis', 'euc', 'z');
$subject = '=?ISO-2022-JP?B?' . encode_base64($subject, '') . '?=';
# 本文をJISに変換
jcode::convert(\$msg, 'jis');
&mail($to_mail, $from_mail, $subject, $msg);
▼サブルーチン
sub mail{
my($to_mail, $from_mail, $subject, $msg) = @_;
# sendmailによるメール発信
my $sendmail = '/usr/lib/sendmail'; # sendmailパス
open(MAIL,"| $sendmail -t") || &error("メール送信に失敗しました");
print MAIL "To: $to_mail\n";
print MAIL "From: $from_mail\n";
print MAIL "Subject: $subject\n";
print MAIL "X-Mailer: Mail Form Sendmail\n";
print MAIL "Content-Transfer-Encoding: 7bit\n";
print MAIL "Content-type: text/plain; charset=\"iso-2022-jp\"\n";
print MAIL "MIME-Version: 1.0\n\n";
print MAIL "$msg";
close(MAIL);
}
print MAIL "Content-type: text/plain; charset=\"iso-2022-jp\"\n";
を
print MAIL "Content-type: text/plain;\n";
にすれば迷惑メールにならずに済むのですが、一部の利用者(特にMacユーザー)で、送信されたメールが文字化けしているようですので、何とかcharsetの指定も入れたいと思っています。
上記のプログラムで、おかしいところがあるでしょうか?
どうか、ご教示いただけますよう、よろしくお願いします。
お礼
nep0707さん、早々にご回答いただき、ありがとうございました。 やはり、受信者側で対応していただくしかなさそうですね。 ホワイトリストに入れてもらうように注意書きすることで対応することにします。