|
|
日本語のメール送信は、マルチバイト文字列関数が利用可能でなければなりません。
php.ini で以下のようにして下さい
extension=php_mbstring.dll
また、プログラム中で以下のようにしてもかまいません。
if ( !extension_loaded( "mbstring" ) ) {
dl("php_mbstring.dll");
}
※ 拡張モジュールの名前リストを得るには、php.ini で使用可能にして
※ コマンドラインより php.exe -m を実行します
| |
|
|
<?
mb_language( "ja" );
mb_internal_encoding("EUC-JP");
$send = mb_convert_encoding( "表示", mb_internal_encoding(), "SJIS" );
$to = "lightbox@sdc";
$from = "lightbox@sdc";
ini_set( "SMTP", "localhost" );
ini_set( "sendmail_from", $from );
mb_send_mail( $to, $send, $send );
print "OK";
?>
| |
|
メールサーバーは ウィズ98 メールサーバ でテストしています
|
ウィズ98 メールサーバ は設定が簡単でローカル環境でテストするのに適していますが、
PHP のせいなのかどうか解りませんが、送信元と送信先に User <lightbox@sdc> という形式が使えません。
| |
|
|
Windows 環境では無い mb_send_mail |
|
|
<?
mb_language( "ja" );
mb_internal_encoding("EUC-JP");
$send = mb_convert_encoding( "表示", mb_internal_encoding(), "SJIS" );
$to = mb_convert_encoding( "漢字表示", "JIS", "SJIS" );
$to = "=?ISO-2022-JP?B?" . base64_encode($to) . "?= <送信先メールアドレス>";
$from = mb_convert_encoding( "漢字表示", "JIS", "SJIS" );
$from = "From: =?ISO-2022-JP?B?" . base64_encode($from) . "?= <送信元メールアドレス>";
mb_send_mail( $to, $send, $send, $from );
print "OK";
?>
| |
|
しかし、いずれにせよ Outbound Port25 Blocking の為の ポート 587 + SMTP AUTH
に対応するには PEAR の Net_SMTP を使用する必要があるようです。
ですが、PHP が存在するサーバにメールサーバが稼動しているという通常の環境では
考える必要は無いと思われます。
|
Outbound Port 25 Blocking 用テスト |
|
|
<?
mb_language( "ja" );
mb_internal_encoding("EUC-JP");
require_once 'SMTP.php';
if (! ($smtp = new Net_SMTP("サーバー", "587", "localhost"))) {
die("Unable to instantiate Net_SMTP object\n");
}
if (PEAR::isError($e = $smtp->connect())) {
die($e->getMessage() . "\n");
}
PEAR::isError($e = $smtp->auth("メールアカウント", "パスワード"));
$from = "自メールアドレス";
if (PEAR::isError($smtp->mailFrom($from))) {
die("Unable to set sender to $from");
}
$rcpt = '他メールアドレス';
if (PEAR::isError($res = $smtp->rcptTo($rcpt))) {
die('Unable to add recipient ' . $rcpt . ': ' .
$res->getMessage() . "\n");
}
$from = mb_convert_encoding( "送A信B者", "JIS", "SJIS" );
$from = "From: =?ISO-2022-JP?B?" . base64_encode($from) . "?= <自メールアドレス>\r\n";
$to = mb_convert_encoding( "宛A先", "JIS", "SJIS" );
$to = "To: =?ISO-2022-JP?B?" . base64_encode($to) . "?= <他メールアドレス>\r\n";
$subject = mb_convert_encoding( "件B名", "JIS", "SJIS" );
$subject = "Subject: =?ISO-2022-JP?B?" . base64_encode($subject) . "?=\r\n";
$text = mb_convert_encoding( "漢字--表示", "JIS", "SJIS" );
if (PEAR::isError($smtp->data( "$subject$from$to$text"))) {
die("Unable to send data\n");
}
$smtp->disconnect();
?>
Done.
| |
|
|
|