- - PR -
postfixとPerlのsendmail
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2007-01-28 16:14
はじめまして。おさむと申します。
先日よりPostfixでメールサーバーを作りました。シェルのmailコマンドなどは通常通り使えまして、届いたメールはrootになっております。 PerlでもってCGIを使う際にsendmailを使うわけですが、ここでちょっと僕には解決できない問題が生じています。 Postfixでのドメインは(例)example.com、メールアドレスは(例)example@example.comという風になっていて設定しています。使っているのは、このメールアドレスのみです。つまりexampleユーザのみでメールサーバーを使っています。(バーチャルなメールアドレスは設定していません。) sendmailを使ってPerlスクリプトを書いた際に、 $sendmail ="/usr/sbin/sendmail"; # sendmailパス $message = <<END_OF_MAIL; To: you@you.com Cc: we@we.com お名前 おさむおさむ 届いてますか END_OF_MAIL open (SENDMAIL, "| $sendmail -t -oi"); print SENDMAIL $message; close (SENDMAIL); と書いて実行してもメールが送信されません。 しばらくしてから、Undelivered Mail Returned to Senderというタイトルで 以下のようなメールが来ます。 This is the Postfix program at host example.example.com. I'm sorry to have to inform you that your message could not be delivered to one or more recipients. It's attached below. For further assistance, please send mail to <postmaster> If you do so, please include this problem report. You can delete your own text from the attached returned message. The Postfix program <you.you.com@example.com> (expanded from <you.you.com>): unknown user: "you.you.com" <we.we.com@example.com> (expanded from <we.we.com>): unknown user: "we.we.com" you@you.comに送信しようとしたメールが、you.you.com@example.comになってしまっているようです。postfixの設定で、どこかに自動的に@マーク以下を補填するように設定しているのかもしれません。もしわかる方がいらしたら、おしえてください。 また、sendmailを使う際に指定したメールアドレスに送信する方法(例えば、'シングルウォートで囲めば'@マーク以下が補填されない…とか、それに特化したオプションの指定など…そのようなことがわかれば幸いです。 [ メッセージ編集済み 編集者: numao 編集日時 2007-04-16 15:17 ] |
|
投稿日時: 2007-01-28 16:22
[追伸]
GNOME端末からのコマンドでもって、sendmailを使うと上記のような現象は生じません。 # sendmail you@you.com From: example@example.com To: you@you.com Cc: we@we.com 届いてますか . # (元に戻る) という単純なsendmailです。勿論オプションなどの設定をしてもきちんと送信されています。 |
|
投稿日時: 2007-01-28 19:15
こんばんは。
直接 Postfix の仕様の話ではありませんが。 perl でヒアドキュメントを扱う際って、アットマークは配列として認識されませんでしたっけ? エスケープシーケンス挟んでみてはどうでしょうか? #実際は前もってメールアドレスを変数に格納していて、ヒアドキュメント中では、 変数記載していたら的はずれです。ごめんなさい。 あと、試せるのであれば、ヘッダ記載オンリー(-t オプション)は一旦止めて、 普通にコマンド引数に、まずは送信者だけ指定して送信できるかの確認ですかね。 |
|
投稿日時: 2007-01-28 21:03
あるかなさん、早速の返信ありがとうございます。
全くその通りでした。もの凄い単純なミスをしてしまいました。 おっしゃる通り、@が配列として認識されていました。エスケープしたところ正常に起動しました。また、すべての無駄な要素を省いて、sendmail xxxx@xxxxx.comのように最もシンプルに送信もできました。 今日一日このことで悶々としておりましたので、とても爽快です。ありがとうございました!! |
1