PerlでSMTP-AUTH認証をする

* No Comments * No TrackBacks

Noel Cafeで使用しているサーバーLolipopがパワーアップした。
いろいろ喜ばしいことではあるが、
自作CGIの改良が必要になってしまった。

Photo Blogでは
添付付きメール送信→Perl(自作)
 →Movable Type投稿→Twitpic投稿
 →その他サービスへメールで投稿
という仕組みになっている。
「メールで投稿」をLolipopメールを使用しているのだが
認証方法がPOP before SMTPからSMTP-AUTHに変わった。
このために、スクリプトの書き換えが必要になった。

以下、Perl で SMTP-AUTH認証+αの覚書。


おおよそのスクリプトは以下のとおり。
$smtp->to(...)の前に、$smtp->auth(...)を入れます。
(下の例では4行目です)
(私はスクリプトがすっきりするので
MIME::Entityを使用します。)

use NET::SMTP;
use MIME::Entity;
my $smtp = Net::SMTP->new($SENDM_S_SERVER, Port=>$SMTP_PORT);
$smtp->auth($SMTP_USER, $SMTP_PASS);
$smtp->mail($MAIL_FROM);
$smtp->to($MAIL_TO);
$smtp->data();
my $mail_data = MIME::Entity->build(
    From     => $MAIL_FROM,
    To       => $MAIL_TO,
    Subject  => $MAIL_SUBJECT,
    Type     => 'text/plain;charset="iso-2022-jp"',
    Data     => $MAIL_BODY,
    Encoding => "7bit"
);
$mail_data->attach(
    Path => $IMAGE_PATH ,
    Type => 'image/jpeg',
    Encoding => 'Base64'
);
$smtp->datasend($mail_data->stringify);
$smtp->dataend();
$smtp->quit;


さて、書いたもののエラーは出ないのに動かない・・・。
ぐぐったところSMTP-AUTH認証にはAuthen::SASLが必要らしい。
レンタルサーバーなのでインストールは出来ないが、
mt/extlibを参照しているスクリプトなので、
mt/extlib内にAuthen::SASLのlibファイル内をぶち込み試行。
とりあえず、これだけで完了しました。


参考にしたページ (ありがとうございます!)


そんな訳で久しぶりの投稿になってしまいました。
Blog本体もPhoto Blogも。

No TrackBacks




Leave a comment

(will not be published, but required * 必須ですが表示されません)
Heart Star Blink Star ♪ ♪♪ Tear Sweat! Bomb 髑髏 Caution! Caution! 蛙 蛙2 兎 パンダ 魚 金魚
Smile1 Smile2 Smile3 Smile4 Smile5 Smile6 Leaf Red Leaf Yellow Leaf 楓 もみじ 銀杏(緑) 銀杏(黄) 木 桜 木(赤) 木(黄)
Powered by MT Smileys

facebook Comments Form

June 2017

S M T W T F S
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  

Recent Trackbacks

Monthly Archives