- ベストアンサー
ActivePerlでSMTPプロトコルでメール送信したい
すみません。質問があります。 ActivePerl 5.6.0.620でSMTPプロトコルで メール送信したいのです。 が「TO」に複数のアドレスを指定すると エラーメールが返ってきます。 (「TO」に1つのみ設定した場合は OKなんですが) 誰かアドバイスをご教授下さい。 -----以下ソースの一部分 data{'To'} = 'b@aaa.co.jp , c@aaa.co.jp , d@aaa.co.jp'; $server->to($data{'To'}); -----以下エラーメール----- ----- The following addresses had permanent fatal errors ----- <b@aaa.co.jp,c@aaa.co.jp,d@aaa.co.jp> ----- Transcript of session follows ----- ... while talking to mta.excite.com.: >>> RCPT o:<b@aaa.co.jp,c@aaa.co.jp,d@aaa.co.jp> <<< 553 Invalid address syntax 550 b@aaa.co.jp,c@aaa.co.jp,d@aaa.co.jp>... ser unknown
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
確かSMTPのRCPTでは同時に1つのアドレスしか指定できなかったと思います。 自前で分解してRCPTを連発する必要がありますね。 参考URLはSMTPのRFC日本語版です。
その他の回答 (3)
- ryouchi
- ベストアンサー率41% (52/125)
自己レスです。 >で、@userの個数分、それに相当するメールアドレスを @usersの個数分ですね。 失礼しました。
data{'To'}で拾ったデータをsplitして、 それぞれを<>でくくれば大丈夫なはず。 確かSMTPサーバは、<>で囲まれた情報を 一つのメールアドレスだと解釈するはず。 従って、a@ne.jp、b@com、c@eduに送る 場合、<a@ne.jp>, <b@com>, <c@edu>と する必要があったはずです。 だめなときは補足してください。 ではでは☆
補足
アドバイスありがとうございました。 試してみましたがダメでした。
- ryouchi
- ベストアンサー率41% (52/125)
ActivePerlは使ったことはないのですが、 data{'To'}内の文字列を","の部分でsplitしてひとつづつおくるというのはどうでしょう? @users = split(/,/,data{'To'}) で、@userの個数分、それに相当するメールアドレスを foreach $user (@users) { $server->to($user) ...... ...... } とかってできませんでしょうか? あんまりスマートではないかもしれません。 だめでしょうか?
お礼
早速のアドバイスありがとうございます。 最終的にはその手しかないと考えてます。 でも一挙に送信できたらなぁ...って思ってます。
お礼
アドバイスありがとうございました。 1件1件送付することにします。 ありがとうございました。