• ベストアンサー

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

質問者が選んだベストアンサー

  • ベストアンサー
  • shigatsu
  • ベストアンサー率26% (511/1924)
回答No.4

確かSMTPのRCPTでは同時に1つのアドレスしか指定できなかったと思います。 自前で分解してRCPTを連発する必要がありますね。 参考URLはSMTPのRFC日本語版です。

参考URL:
http://www.geocities.co.jp/SiliconValley-PaloAlto/5694/rfc/rfc821-ja.txt
HANABU
質問者

お礼

アドバイスありがとうございました。 1件1件送付することにします。 ありがとうございました。

その他の回答 (3)

  • ryouchi
  • ベストアンサー率41% (52/125)
回答No.3

自己レスです。 >で、@userの個数分、それに相当するメールアドレスを @usersの個数分ですね。 失礼しました。

noname#9414
noname#9414
回答No.2

data{'To'}で拾ったデータをsplitして、 それぞれを<>でくくれば大丈夫なはず。 確かSMTPサーバは、<>で囲まれた情報を 一つのメールアドレスだと解釈するはず。 従って、a@ne.jp、b@com、c@eduに送る 場合、<a@ne.jp>, <b@com>, <c@edu>と する必要があったはずです。 だめなときは補足してください。 ではでは☆

HANABU
質問者

補足

アドバイスありがとうございました。 試してみましたがダメでした。

  • ryouchi
  • ベストアンサー率41% (52/125)
回答No.1

ActivePerlは使ったことはないのですが、 data{'To'}内の文字列を","の部分でsplitしてひとつづつおくるというのはどうでしょう? @users = split(/,/,data{'To'}) で、@userの個数分、それに相当するメールアドレスを foreach $user (@users) { $server->to($user) ...... ...... } とかってできませんでしょうか? あんまりスマートではないかもしれません。 だめでしょうか?

HANABU
質問者

お礼

早速のアドバイスありがとうございます。 最終的にはその手しかないと考えてます。 でも一挙に送信できたらなぁ...って思ってます。

関連するQ&A