- ベストアンサー
CPANの「Mail::Mailer」 Return-Pathについて
CPANの「Mail::Mailer」をsendmailとしてつかってるのですが、 今回、メールヘッダーのReturn-Pathを変更しなければならなくなりました。 いろいろググッてみたのですが、なかなかそれっぽい情報が分かりません。 my $mailer = Mail::Mailer ->new; のあと、何に(どのように)Return-Pathのアドレスをセットしてあげればいいのでしょうか・・? 知っているかたいらっしゃいましたら、教えてください。宜しくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> Bareword "Return" not allowed while "strict subs" in use at ... > という感じで、怒られてしまいました。。 エラーメッセージを注意深く見れば気がつきますが、 > Return-Path => 'admin@myhost.domain', fat comma (=>)の左辺にあるもの(ハッシュのキー)に '-' が含まれているので 'Return-Path'という一まとまりの文字列とみなされなくなっています。 とりあえずクォートなりダブルクォートなりでくくってやれば ハッシュのキーとしてみてくれるようになります。 The "=>" operator is a synonym for the comma, but forces any word (consisting entirely of word characters) to its left to be interpreted as a string (as of 5.001). This includes words that might otherwise be considered a constant or function call. (perlop comma operatorの項)
その他の回答 (2)
- chaimasuka
- ベストアンサー率57% (26/45)
sakusaker7 さん、ご丁寧なフォローありがとうございました。 まさにその通りです。 うっかりしていました。 ただ、「最終的にメールを配送するSMTPサーバが、Return-Pathを挿入する」とRFC2821 で規定されています。 原文: http://www.ietf.org/rfc/rfc2821.txt 邦訳: http://www.puni.net/~mimori/rfc/rfc2821b.txt ([Page 49] - [Page 50] あたり) そのため、どちらかというとPerlスクリプト内ではなく、 MTA側(sendmailやposifix など)での設定が必要になってくるのではないでしょうか。 --- 参考までに、Mail::Mailerモジュールの使い方については、 「Perlクックブック 第2版 VOLUME 2」(オライリージャパン) 第18章「レシピ18.3 メールを送信する」 が詳しいです。 この本は、少々値がはりますが、これからもPerlを使う機会があるなら、 手元においておいて損はないでしょう。
お礼
有難うございます! Perlクックブック 第2版 VOLUME 2、参考にしてみますね!!
- chaimasuka
- ベストアンサー率57% (26/45)
my $mailer = Mail::Mailer->new; の後に、次のように差出人や宛先、件名といったメールのヘッダをセットします。 $mailer->open({ From => 'hoge@hoge.co.jp', To => 'fuga@fuga.co.jp', Subject => 'hello', }); ここで、Return-Path もいっしょにセットするといかがでしょう。 以下のような感じでしょうか。 $mailer->open({ From => 'hoge@hoge.co.jp', To => 'fuga@fuga.co.jp', Subject => 'hello', Return-Path => 'admin@myhost.domain', }); 動作未検証ですが。
補足
有難うございます。やってみましたが、 Bareword "Return" not allowed while "strict subs" in use at ... という感じで、怒られてしまいました。。 また何か分かりましたら、宜しくお願いします。
お礼
クォートをつけたらばっちり解決しました!!! キーにクォート、、、こんなこともあるんですね! 有難うございました!!