• ベストアンサー

perl 自動返信メールプログラム作成

御願いします。 perlにてなんとかメールを受取り 送信完了メッセージを表示するまで は完成し問題なく動いています。 今度は 送られてきたメールの内容を含めて自動返信したいのですがどのようにコーディングすればよいのか御教え頂けたらと思います。 環境から申し上げます。 サーバー ANHTTP ルーターの配下に パソコン4台で内一台サーバー専用機として稼動中です。(WWW、FTP,MAIL) メールサーバーは XMAILです。正常に稼動しています。 プロバイダー ヤフー 現在はLAN内では送信内容を含めた自動返信は動きます。 またプロキシを通してLAN内のメールアドレスをフォームに書いて送信すると 送信内容を含めて届きます。ですが第三者、友人に送信してもらうとエラーが出ます。 プログラムの流れは受け取ったデータ―を切り分けてハッシュに入れて それをエンコードしヘッダーを作成しsendmailの代用品のsendomaneへパイプを通しています。その後送信完了をHTMLで表示 その下に自動返信サブルーチンを作成 ここでメールの送信は「to」と 「from」スカラー変数の値を入れ替えています。LANないはOK、外部からはエラーとなっています。 外部より送信時のエラーです。 [<00>] XMail bounce: Rcpt=[xxxxx@yyy.zzz];Error=[521 ybbsmtp.mail.yahoo.co.jp closing transmission channel. This email address must be verified first before you can use it for Sender/From field.] 勉強不足でこの意味が分かりませんがヤフーで止められている気がするのですが・・・。 上記のエラーが出ている友人とはメールソフト使用のメール送受信は正常です。いろいろ調べましたが分かりませんでした。 どなたか ご教授いただけますよう御願い致します。

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

  • ベストアンサー
  • t-okura
  • ベストアンサー率75% (253/335)
回答No.2

> This email address must be verified first before you can use it > for Sender/From field. となっているので、メール送信者(エンベロープおよびヘッダ)のアドレスに 問題があるのではないでしょうか。 sendmane.exe で発信する際のエンベロープ Sender は、初期設定で 指定するのでしょうか。sendmane.ini に設定されている 発信者のメールアドレスがプロバイダで使用しているメールアドレスに 一致しているか確認するとよいと思います。 また、XMailServer を使用されているようですが、XMailServer には 中継先のメールサーバとユーザ認証する仕組みがあるので、それを 使用してもよいと思います。

参考URL:
http://www.xmailserver.jp/sample/xmailcfg/cgi/smtpclientauth.cgi?top
see-sky
質問者

お礼

t-okura様 お答えいただきありがとう御座います。 お陰さまで 無事 自動返信メールが届くようになりました。 ありがとうございます。!! 私は perlからの送信なのでヤフーのOP25Bでブロックされているものとばかり思っていました。 ヘッダー部分の流れをたどってみるとto, と from, を入れ替えてはいたのですが変数の値は変わっていませんでした。 また from: の送信元メールアドレスの変数の値がメールではないものが 入っていました。 何度も確認していましたが こんなミスをしていることに気が付きませんでした。 XMailServerのさんこうURLはすでに設定しています。 ありがとう御座います。 perlは勉強を始めたばかりで 詳しい事は分かりませんが これを機会に知識を積み上げていきたいと思います。 的確なアドバイス本当にありがとう御座います!!。 ありがとう御座います!!。 これからも 宜しく御願い致します。<(_ _)> 質問の場を御提供頂いているOK-WEBスタッフ様にも感謝したします。

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

エラーメッセージを読む限り, SMTP でメールを送る前に認証が必要なんだと思います. POP before SMTP とかの類かと. その「メールソフト」で「メールを送る」ときに何かしているんじゃないかなぁ.

see-sky
質問者

補足

Tacosan様 ご回答ありがとう御座います。 メールソフトでは問題なく送受信できています。 ブラウザより入力された内容は処理されメールとして私の元へ届いています。 送られてきた内容をそのまま確認の意味で送り返したいのですが・・・ よくあるネットショップ等で内容を含めた 自動で届く確認のメールの実現を目指しています。 ブラウザからto,私のメールアドレス from,フォーム入力者のアドレス、 で送られてきます。自動返信時はこのto,とfrom,の値を入れ替えて自動返信処理をしています。 するとエラーになるのですが [<00>] XMail bounce: Rcpt=[xxxxx@yyy.zzz];Error=[521 ybbsmtp.mail.yahoo.co.jp closing transmission channel. This email address must be verified first before you can use it for Sender/From field.] perlプログラム内のどこでPOP before SMTP のコーディングをすればよいのでしょうか? 何かヒントや 参考URLなど御座いましたら御願い致します。 ありがとう御座います。。。

関連するQ&A