NAME

    EmailJP.pm -- Send mail with Net::SMTP (add Date: header)


SYNOPSIS

    # 簡単な使い方(ヘッダを参照して宛先アドレスを決定)
    use EmailJP;
    my $count = &EmailJP::sendmail( mail => $text );

    # 最大限の使い方(宛先アドレスを明示的に指定する)
    use EmailJP;
    my $server;
    $server = "127.0.0.1";                      # SMTPサーバ
    $server = [qw( 192.168.0.1 127.0.0.1 )];    # 複数指定可能
    my $count = &EmailJP::sendmail( 
        server   =>  $server,        # SMTPサーバ
        hello    =>  "localhost",    # HELLO
        timeout  =>  5,              # タイムアウト
        return   =>  $return_path,   # エラー返送先
        to       =>  $rcpt_to,       # メール宛先
        head     =>  $mail_head,     # メールヘッダ
        body     =>  $mail_body,     # メール本文
        charset  =>  "iso-2022-jp",  # 送信文字コードは JIS
        internal =>  "EUC-JP"        # 内部文字コードは EUC
    );


DESCRIPTION

EmailJP モジュールは、日本語を含むメールを適切な形式で送信します。


OPTIONS

sendmail() 関数では以下のオプションを指定できます。

server => SMTPサーバホストIPアドレス

    EmailJP がメール送信する際、デフォルトで 127.0.0.1(自ホスト)に
    SMTP 接続してメールを送信します。
    SMTP 接続する先のメールサーバIPアドレスを変更する場合は、
    server オプションで指定してください。
    配列へのリファレンスで複数のメールサーバを列挙した場合は、
    1つ目のメールサーバが停止している場合に
    2つ目以降のメールサーバへ順に接続します。
    基本的に利用可能なメールサーバを列挙しておくことをお勧めします。

hello => HELLO文字列

    SMTP 接続時の HELO コマンドの引数を指定します。
    デフォルトでは localhost となります。
    このままでも通常は問題ありません。

timeout => タイムアウト秒数

    SMTP 接続時のタイムアウト秒数を指定します。

return => エラー返信先アドレス

    メール送信完了後にエラーが発生した場合に、
    SMTP サーバから通知されるアドレスを指定します。
    指定しない場合は、メールヘッダの Return-Path: 行が参照されます。
    ただし、エラーメールが生成されるのは EmailJP の送信処理が成功した後で、
    EmailJP の送信処理が失敗した場合は、単に偽が返ります。

to => メール宛先アドレス

    メールの宛先アドレスを指定します。
    指定しない場合は、メールヘッダの To: Cc: Bcc: 行が参照されます。

internal => 内部文字コード

    sendmail() 関数を呼び出す側の文字コードは、
    デフォルトで EUC-JP とみなします。
    EUC-JP 以外の文字コード(UTF-8など)を使用している場合は、
    internal オプションで指定してください。
    Shift_JIS、UTF-8 などが使用できます。

charset => 送信文字コード

    メール送信時の文字コードは、デフォルトで iso-2022-jp となります。
    ただし、メール本文中に &#xHHHH; 形式の絵文字コードを含んでおり、
    メールの宛先に NTT ドコモ携帯アドレスを含んで、
    かつ au・TU-KA・Vodafone の携帯アドレスを含まない場合は、
    NTT ドコモ用絵文字を文字化けなく受信させるため Shift_JIS となります。
    それ以外の文字コードで送信したい場合は、charset オプションで
    指定してください。
    Shift_JIS、UTF-8 などが使用できます。

head => メールヘッダ body => メール本文

    送信するメールのヘッダと本文を指定します。
    メールヘッダと本文が予め合体している場合は、
    下記の mail オプションを指定してください。

mail => メールヘッダ+本文

    送信するメールのヘッダと本文を指定します。
    ヘッダと本文の間には空行×1が必要です。
    メールヘッダと本文が予め分離している場合は、
    上記の head・body オプションを指定してください。


DEFAULT MAIL HEADER

mail オプションまたは head オプションで指定されたヘッダ中に 必須のヘッダが無い場合は、下記のようなヘッダが自動付加されます。

    (標準:JISの場合)
    Date: Fri, 13 Jun 2003 03:17:01 +0900
    MIME-Version: 1.0
    Content-Type: text/plain; charset="ISO-2022-JP"
    Content-Transfer-Encoding: 7bit

    (Shift_JISの場合)
    Date: Fri, 13 Jun 2003 03:17:01 +0900
    MIME-Version: 1.0
    Content-Type: text/plain; charset="Shift_JIS"
    Content-Transfer-Encoding: 8bit


E-MAIL FOR PC

PC向けのメール中に、ハシゴ高や、立の崎字などの IBM 拡張漢字を含む場合も EscapeJIS.pm モジュールにより文字化けせずに送信できます。

    CP932   UCS2    補足 
    ------  ------  ---------- 
    FBFC    9AD9    ハシゴ高 
    FAB1    FA11    山+立+可 
    FBB9    9127    とう小平 

ただし、受信側のOS、メールソフトによっては正しく表示できない場合も あります。(Outlook Express・Becky! 2 では表示できます)


E-MAIL FOR PHONE

メール本文の文字コードは通常、ISO-2022-JP (JIS) となりますが、 メール本文中に &#xHHHH; 形式の絵文字コードを含んでおり、 メールの宛先に NTT ドコモ携帯アドレスを含んで、 かつ au・TU-KA・Vodafone の携帯アドレスを含まない場合は、 NTT ドコモ用絵文字を文字化けなく受信させるため Shift_JIS となります。

メール本文中に &#xHHHH; 形式の絵文字コードを含んでおり、 メールの宛先に au・TU-KA の携帯アドレスを含んで、 かつ NTT ドコモ・Vodafone の携帯アドレスを含まない場合は、 EmojiTrans.pm モジュールを利用して、 NTT ドコモ用の絵文字コードを au・TU-KA 用の似た絵文字コードに変換します。

メール本文中に &#xHHHH; 形式の絵文字コードを含んでおり、 メールの宛先に Vodafone の携帯アドレスを含んで、 かつ NTT ドコモ・au・TU-KA の携帯アドレスを含まない場合は、 EmojiTrans.pm モジュールを利用して、 NTT ドコモ用の絵文字コードを Vodafone 用の似た絵文字コードに変換します。

これにより、NTT ドコモ用の絵文字コードを含むメール本文を用意するだけで NTT ドコモ・au・TU-KA・Vodafone 全てのキャリアに対して絵文字を含むメールを 正常に送信することができます。


COPYRIGHT

    Copyright 2004 Kawasaki Yusuke <u-suke [at] kawa.net>
    http://www.kawa.net/