• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:メール送信プログラムに詳しい方、教えて下さい。)

メール送信プログラムの改善について

このQ&Aのポイント
  • 入力フォームにメールアドレス等を入力し、メールを送信するためのプログラムについて質問です。
  • 現在のプログラムでは、メールアドレスが正しくない場合や全角文字を入力した場合に問題が発生しています。
  • 正しくメールを送信できなかった場合、担当者にメールが届くようにする方法を教えてください。

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

  • ベストアンサー
  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.2

>アドレスが$submitになっていました。 意味がわかりません。 >、「本来入力者へ届くメールが、担当者に届く」という動きになるのでしょうか? エラーメッセージが届きます。 本来のメッセージは添付されると思います。 メール判定は、 $mail_regex = q{(?:[^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\\} . q{\[\]\000-\037\x80-\xff])|"[^\\\\\x80-\xff\n\015"]*(?:\\\\[^\x80-\xff][} . q{^\\\\\x80-\xff\n\015"]*)*")(?:\.(?:[^(\040)<>@,;:".\\\\\[\]\000-\037\x} . q{80-\xff]+(?![^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff])|"[^\\\\\x80-} . q{\xff\n\015"]*(?:\\\\[^\x80-\xff][^\\\\\x80-\xff\n\015"]*)*"))*@(?:[^(} . q{\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\\\[\]\0} . q{00-\037\x80-\xff])|\[(?:[^\\\\\x80-\xff\n\015\[\]]|\\\\[^\x80-\xff])*} . q{\])(?:\.(?:[^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,} . q{;:".\\\\\[\]\000-\037\x80-\xff])|\[(?:[^\\\\\x80-\xff\n\015\[\]]|\\\\[} . q{^\x80-\xff])*\]))*}; これを入れないと判定できませんよ。

TMEspion
質問者

お礼

アドバイスありがとうございます。 >メール判定 見落としてました。 追加したら判定でき、その後の処理も設計の目処が立ちましたので、 質問を締め切らせていただきます。

その他の回答 (1)

  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.1

Return-Path を設定すればいいでしょう。 http://www.gac.jp/article/index.php?stats=question&category=12&id=13626&command=msg http://www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&man=sendmail&dir=jpman-3.2.0%2Fman あとは、メールアドレスの形式チェックで正しくない形式の場合はエラーを返すとかしたほうが良いでしょう。 http://www.din.or.jp/~ohzaki/perl.htm#Mail

TMEspion
質問者

補足

回答ありがとうございます。 Return-Path、メールソースに組み込んでみたものの、受信したメールを確認したところ、アドレスが$submitになっていました。 成功してないのでよくわからないのですが、 この方法の場合、「本来入力者へ届くメールが、担当者に届く」という動きになるのでしょうか? メールアドレスの形式チェックの方もうまくいきません。 紹介いただいたURLの「メールアドレスの正規表現」の 「# $email が正しいメールアドレスか判定する」の行から 「print "ok?n" if $email =~ /^$mailbox$/o;」の行までをソース内に組み込んでみたのですが、何も変わりません。 何か、間違えてますでしょうか・・・

関連するQ&A