※ ChatGPTを利用し、要約された質問です(原文:cgi(perl) sendmailの使い方)
Perlのsendmailを利用したメール送信時の余計なドメインの問題
このQ&Aのポイント
Perlのsendmailを利用したメール送信時に、宛先のアドレスに余計なドメインが付加される問題が発生しています。
現在のコードでは、変数で宛先のアドレスを指定すると余計なドメインが付加されてしまいます。
この問題を解消するためには、直接宛先のアドレスを指定する方法を検討する必要があります。
お手数ですがよろしくお願い致します。
レンタルサーバー(ロリポップ)にCGIを設置してサイトを作成しています。
メールフォームを作ってフォームから指定されたメールアドレスに自動返信するようにしたいのですが、うまく動作しなくて困っています。
利用環境は
Perl(ver.5.8.8)でsendmailについては以下のようになっています。
・SENDMAIL の利用は可能です。 postfixによるラッパーとなります。
・sendmailのパスは/usr/lib/sendmail もしくは/usr/sbin/sendmail どちらでも利用可。
現在メールを送るところまでは出来るようになったのですが、届くメールを見ると宛先などのアドレスに余計なドメインが付加されているのです。
テスト中のcgiは大体以下のような感じです。
my $from = 'foo01\@bar.jp';
my $to = 'foo02\@bar.jp';
my $subject = 'test';
my $msg = 'test';
open(SDML,"| $sendmail -t -i") || die;
print SDML "From: $from\n";
print SDML "To: $to\n";
print SDML "Cc: $cc\n";
print SDML "Subject: $subject\n";
print SDML "Content-Transfer-Encoding: 7bit\n";
print SDML "Content-Type: text/plain;\n\n";
print SDML "$msg";
close(SDML);
これで送られてくるメールを見ると
宛先: "foo02@bar.jp"@usersXXX.phy.lolipop.jp (XXXは本当は数字。usersXXXはロリポップのサーバー番号というものらしいです。)
こんな風に余計なドメインがくっついて送られてきます。
print SDML "To: $to\n"; → print SDML "To: foo02\@bar.jp\n";
という感じで直書きに直すとこの症状は起こらないのですが、変数で指定するとどうしても起こります。
自動返信するため宛先に変数を使いたいのですがどうしたらこの症状が出ないように出来るのでしょうか?
お礼
エスケープをなくしたら直りました。 ありがとうございました。