のみまくし日記

毎日が文化祭の前日、そんな環境っていいですよね。この日記は未来の自分へのメッセージです。

2006年03月20日 ()

Sledge::Plugin::Email::Japanese で Return-Path

ずーっと、Sledge::Plugin::Email::Japaneseで、Return-Pathの設定が(以下のようにしか)出来ないと思ってたんだけど、

$self->send_mail(
    'foo.eml' => {
        Subject => 'Hi!',
        To      => $self->r->param('email'),
        TmplParams => {
            name => $self->r->param('name'),
        },
    },
    ['send', 'error@example.jp']
);

内部で使っている、MIME::Lite::TT::Japanese的には

my $msg = MIME::Lite::TT::Japanese->new(
  :
  :
  'Return-Path' => 'error@example.jp'
);

$msg->send();

ってやったら、指定できる、なんでS::P::E:Jでできないか調べてみた。

結論からいうと、S::P::E:Jだけの問題では無くて、内部的につかっているMIME::Lite::TT::Japanese(MIME::Lite)の仕様上の問題でした。

sendのパラメータを指定すると

$msg->send(['sendmail']);

指定した、Return-Pathが上書きされてしまうです。なんで、単純に Config から send を消したら、Return-Pathを指定できました。

$self->send_mail(
    'foo.eml' => {
        Subject => 'Hi!',
        To      => $self->r->param('email'),
        Return-Path => 'error@example.jp',
        TmplParams => {
            name => $self->r->param('name'),
        },
    },
);

S::P::E::J のPODにsendを指定の例が書いてあって、それをそのまま書いていたので、毎回 'Return-Path' が上書きされてしまっていた罠。

なんで、sendを指定したい例の方がすくないと思うので、PODからその設定を消してしまってもいいんかなー。そうすると、Fromしか指定しなくなって、これまた設定ファイル的に微妙な感じになっちゃいますが。

それはそうと、このプラグイン勉強会でやったようなきがするけどアップしてなかったけ?勉強会で、Return-Path 指定できないんじゃね? っつって、$sendmail_opt を渡すようになったきがする。

  • 3/21加筆, S::P::E:Jだけの問題ぽく読めたので。

Perl posted by takefumi | この日記へリンク | コメント(2) | トラックバック(0)

この日記へのトラックバック

この日記へのコメント

>>
第3引数に arrayref を渡すこともできます。その場合、MIME::Lite::TT::Japanese->send への引数として扱われます。
sender をメールごとに変えたい場合などに使うとよいでしょう。
<<
と Nihongo.pod に書いてあるです。

くわしくは↓の記事をどうぞ。
http://tokuhirom.dnsalias.org/~tokuhirom/cl/2006-03-21-2.html

posted by tokuhirom at 2008年12月02日 21時26分 #

あ、S::P:E::Jの問題じゃないっていうのは認識しているです。

PODにsendの指定がしてあるので、そのまま指定するとReturn-Pathが(直感的に指定できそうなのに)指定できないので、はまりやすいねって言いたかった。

posted by きむら at 2008年12月02日 21時26分 #