スレッド表示 | フラット表示〕 全トピック 920 件中 739 番目 次≫ ≪前

日本語名を含むアドレスへのメール送信

created: 2003-11-18 11:54 | modified: 2003-11-18 20:53 | reply: 2

[1028] 日本語名を含むアドレスへのメール送信

user: かぷ | created: 2003-11-18 11:54
はじめまして。
いつも色々と勉強させて頂いています。

mb_send_mail()を使わずに 日本語名を含むアドレスへのメール送信のやり方について質問です。

フォームからメールアドレスを入力してもらい、mail() 関数で送信処理しようとしているのですが、なかなかうまく動作させる事ができません。

TEXTフォームから「 "山田 花子"<xxxx@example.com>,山田 太郎<xxxx@example.com> 」のようなデータをPOSTで受け取った時に、これをそのままmail()関数のtoやCCで渡しても受信したメールの日本語の部分が文字化けしてしまいます。

で、文字化けを解決するには日本語の部分だけを mb_encode_mimeheader() で ISO-2022-JP/BASE64に変換すればうまく行く事までは判ったのですが、どうやれば受け取った文字列から日本語部分だけを抜き出して mb_encode_mimeheader() で変換をかけられるのか方法が判りません・・・

もし判る方が居ましたらアドバイスを頂けないでしょうか。
よろしくお願いします。m(__)m

本文がテキストのみのメールなら mb_send_mail() でtoやccに日本語入りのアドレスを渡してもうまく送れるのですが、ファイルを添付するマルチパートのメールを送ろうとすると mb_send_mail() が勝手にヘッダを追加して せっかく付けたマルチパートのヘッダを無効化されてしまうので mail()を使う事に・・・(T T
reply: 1030 返信 編集 削除

[1030] 正規表現で。

user: ゆうじ | created: 2003-11-18 13:07
こんにちは。
正規表現関数で分けるくらいしか思いつきませんが。


可能ならば、
"山田 花子"<xxxx@example.com> や、
山田 太郎<xxxx@example.com> のような
あいまいなフォーマットではなく、
「山田 太郎」と 「xxxx@example.com」のように、
名前とメールアドレスを別々に受け取れるよう、
仕様を見直した方がいいと思います。

POSTで受け取るのでしたら、
ユーザーがフォームに入力した値でしょうか。
それならば、必ずメールアドレスの書式チェックはされるでしょうから、
初めから分けてあれば書式チェックも簡単になりますし、
なおさら名前とメールアドレスを分けておいた方が便利だと思います。
Parent: 1028  reply: 1035 返信 編集 削除

[1035] 正規表現

user: かぷ | created: 2003-11-18 20:53
こんばんわ。
アドバイスありがとう御座いました。

正規表現について調べてなんとか?メールアドレス以外の切り出しが出来ました。

$ret = array();
$str ='"山田 太郎"<xxxx@example.com>(こんにちわ世界)';

$tmp = spliti('([[:alnum:]\@-_".><\(\)]+)',$str);
for($i = 0;$i < count($tmp);$i++){

if($tmp[$i]){ array_push($ret,$tmp[$i]); }
}

print "count: ".count($ret)."<br>\n";
for($i=0;$i < count($ret);$i++){
print "<li>".htmlspecialchars($ret[$i])."\n";
}

PHP初心者なので動作的に不正確かもしれませんがこれで対応できそうです。

でも確かに入力から別れていたほうが楽ですよね(^^;
変更も検討してみたいと思います。
Parent: 1030  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 739 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑