• ベストアンサー
  • 困ってます

Sendmailで送信。メアドが違う場合User unknowメールを返す。

Sendmailで送信させるPerlプログラムを作成しました。 それ自体は、ちゃんとメール送信できるのですが、Toのメールアドレスが存在しない場合、fromのメールアドレスにUser unknowメールを返す様にするには、どうしたらよいのでしょう。 現在のコードは、メールヘッダー部を$headerに代入し、本文を$bodyに代入しています。 open(MAIL, "| $SENDMAIL -i -t -f $mail") or die("ERROR: exec sendmail."); print MAIL $header, $body; close MAIL; なにせ、あんまりパラメーターの意味がわかってなくて、ネットで調べたコードをそのまま使っているもので、このコードを変えるのだろうな、という憶測はつきますが、じゃあどうかえるのかが分かりません。 よろしくお願いします。

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数69
  • ありがとう数0

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

  • ベストアンサー
  • 回答No.1

Error-To が入っていないのではないでしょうか。 $header に何が入っているかわかりませんが、 途中とかに Error-To を指定してやりましょう。

参考URL:
http://www.gac.jp/article/index.php?stats=question&category=12&id=14581&command=msg

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • Sendmailで送信すると本文にメールヘッダーが出る

    いつもお世話になります。 PerlでSendmail送信プログラムは何回か作ったことが有るのですが、いつもと同じように作っているつもりにも関わらず、送信されたメール本文の1~2行目に Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-2022-JP が表示されます。 コードは$mailtoや$mail_from、$mail_subjectなどをMIMEエンコードしてから下記の様なコードでメールヘッダーを作成し $header = <<END; To: $mailto Bcc:$mail From: $mail_from<$mail> Subject: $mail_subject Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-2022-JP END #メールの本文を下記のように作成 $body = <<END; メール本文 END $mbody=jcode::jis($body); #Sendmailで送信する。 open(MAIL, "| $SENDMAIL -i -t -f $mail") or die("ERROR: exec sendmail."); print MAIL $header, $mbody; close MAIL; というコード-です。 なにが原因かおわかりの方宜しくお願いします。

    • ベストアンサー
    • Perl
  • sendmailのCGIを実行させたい

    ブラウザ画面から入力した内容を取得して、sendmailするCGIを作ったのですが、プロバイダへ上げて実行させてみたら、何かでつまずいていてエラーになるんです! ちなみにプロバイダは、Hi-Hoなのですが、 #sendmailのパス $SENDMAIL = '/user/lib/sendmail'; と指定して、文字の復元・変換・ヘッダの成形をした後で、 #Sendmailでメール送信 open(MAIL, "| $SENDMAIL -i -t -f $FORM{'Email'}") or die("ERROR: exec sendmail."); print MAIL $header, $body; close MAIL; と記述してるのですが、全然うまくいかないんです。 どなたか、Help Me!!

    • ベストアンサー
    • CGI
  • sendmailの改行について

    sendmailの改行について PHPでsendmailにてメールを送信しようとしています。 mb_language("uni"); mb_internal_encoding("SJIS-WIN"); $body = "おはようございます\n"; $body = "こんにちわ\n"; $body = "さようなら\n"; mb_send_mail($to, $subject, $body, $header); 上述のコードにてメールを送信すると、 本文内の改行コードが無視されて、 「おはようございますこんにちわさようなら」 と送信されてしまいます。 改行されるようにするにはどうすれば宜しいでしょうか? 因みにPHP_EOL定数を使っても結果は同じです。

    • ベストアンサー
    • PHP
  • sendmailでメール送信

    OS:Redhat9 sendmail 上記環境にてメール送信を行いたいのですが、 送信されません。 mailコマンドにて、 mail hoge@***.com と入力して、 件名、本文、CCは記述の方法はわかるのですが、 一応送信されているようなのですが、相手(自分の他のメール)に届きません。 sendmailのコマンドにて、メールを送信する場合は ただmailコマンドにあて先メールアドレスを、記述 すればよいのでしょうか、 たとえば、次の中継先のメールサーバーは記述するのでしょうか。

  • メールを送信しました。と出るのにメールが届きません。

    下記のように設定したのですが、どこがいけないのでしょうか? $SENDMAIL = '/usr/sbin/sendmail'; $MAILTO = '<自分のメールアドレス>'; if($ENV{'REQUEST_METHOD'} eq 'POST') { read(STDIN, $query, $ENV{'CONTENT_LENGTH'}); } else { $query = $ENV{'QUERY_STRING'}; } # フォームデータの復元 foreach $pair (split(/&/, $query)) { ($key, $value) = split(/=/, $pair); # 文字のデコード $value =~ tr/+/ /; $value =~ s/%([0-9a-fA-F][0-9a-fA-F])/chr(hex($1))/eg; $FORM{$key} = $value; } # MIMEエンコード $mail_to = mimeencode($MAILTO); $mail_from = mimeencode($FORM{'name'}); $mail_subject = mimeencode($FORM{'subject'}); # 文字コードの変換 $body = jcode::jis($FORM{'msg'}); # メールヘッダーの生成 $header = <<END; To: $mail_to From: $mail_from<$FORM{'email'}> Subject: $mail_subject Mime-Version: 1.0 Content-Type: text/html; charset=ISO-2022-JP END # メールの送信 open(MAILTO, "| $SENDMAIL -i -t -f $FORM{'email'}") or die("エラー:sendmailへのパイプが開けません"); print MAIL "$header, $body"; close MAIL; # サーバー出力 print <<END;

    • 締切済み
    • CGI
  • sendmailで複数アドレスに送信するも2件までしか送信出来ない

    会員向けメール通信システムを作成しています。(けしてSPAMではありません。) PerlCGIによりSendMail送信させますが、次のようなコードで(一部省略しています。) # =================================================== $MAILTO="xxx\@xxxx.com;ooo\@oooo.com"; $mail_to = mimeencode($MAILTO); $mail_from = mimeencode($from); $mail_subject = mimeencode($subject); $m_header = <<END; Bcc: $mail_to From: $mail_from<$mail> Subject: $mail_subject Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-2022-JP END # sendmailで送信 open(MAIL, "| $SENDMAIL -t -f $mail"); print MAIL $m_header, $m_body; close MAIL; # =================================================== で表記のように $MAILTOが2件までなら送信が出来ますが "xxx\@xxxx.com;ooo\@oooo.com"; ではなく "xxx\@xxxx.com;ooo\@oooo.com;aaa@aaa.jp"; の様に3件以上になると送信されません。 なにが原因であるかと、対応策を教えて下さい。

    • ベストアンサー
    • Perl
  • メールの送信

    mail コマンドからメールが送れるのは、sendmail が使われているのでしょうか?それとも mail コマンドが単独でメールを送っているのでしょうか? ただいま、管理人にメールが送れるウェブサーバーを立てたいと思っていますが、MTA を使わずにメールを送信できるのなら、使わずにメールを送信できるようにしたいです。PHP を使ってメールを送信する予定です。しかし、PHP を使ってメールの送信が出来ません。mail コマンドで送信できたので、PHP でも送信できそうな気がしたのですが。 やはり mail コマンドも sendmail を使っているのでしょうか?その場合、sendmail のパスは、/usr/libexec/sendmail/sendmail で合っていますでしょうか? /etc/mail/mailer.conf を見て、実際見に行ったら sendmail があるようですが、パスをそのように指定しても、メールが送信されません。 環境は FreeBSD5.0R です

  • sendmailで本文が文字化けします

    sendmailを使ってメールを送信していますが、下記処理中で、charsetの指定を入れないと本文は文字化けしないのですが、指定を入れると文字化けしてしまいます。 ※ちなみに、OutlookExpressはどの場合でも文字化けしないで受信できました。 どなたかご存知のかた教えていただけないでしょうか。 ソースは以下のような感じです。 require "/XXX/jcode.pl";# 文字列変換 require "/XXX/mimew.pl";# MIME エンコード # メールHEADER作成 $head = "From: $FromUser\n"; $head .= "To: $ToUser\n"; $head .= "Subject: $Subject\n"; $head .= "Mime-Version: 1.0\n"; $head .= "Content-Type: text/plain; charset=\"ISO-2022-JP\"\n"; $head .= "Content-Transfer-Encoding: 7bit\n"; $head .= "\n"; # JISコード変換 $code = &jcode'convert(*head, 'jis'); # エンコード $header = &mimeencode($head); # メール本文作成 $body = "メール送信のテストです\n"; $code = &jcode'convert(*body, 'jis'); if (open(MAIL,"|/usr/lib/sendmail -f $FromUser $ToUser")){ print MAIL $header; print MAIL $body; print MAIL "\n\n"; close(MAIL); }

  • perl   フォームメール送信の文字化けについて

    フォームメール送信の文字化けについてお教え下さい。 よろしくお願い致します。 まずは環境より申し上げます。 環境 xampp-win32-1.7.7-VC9 同封 apache2.2.21 php5.3.8 perl 同封されているもの -----------------------------  xmailサーバーも動いています。 内部、外部、外部から外部、ともに正常に送受信できています。 以前はANHTTPDとperlとsendまね&#65374;るで問題なく動いていましたが このたびPHPが必要になりましたので以前のperlをアンインストールしてXAMPPをインストールしました。 以前からの自作のメールフォームを設置してメールを送信すると 受付確認メールと問い合わせ報告メールのすべてが文字化けしています。 一応 文字コードはUTF-8で mail.html、 perlプログラム、ともに統一しています。 apacheのhttpd.confの中にはAddDefaultCharset・・・の設定項目がなぜかありませんので apacheについては文字コードの設定などはおこなっておりません。 症状ですが メールフォームに入力して確認ボタンを押すと現れる確認画面は 文字化けしておりません、高崎、申す、表示という文字も化けていません。 このあと送信ボタンを押すと メールは宛先へ正常に届きますが タイトルからすべてが文字化けで読む事はできません。 原因探しが三日くらい続き、気になって寝られません。 ひろいあつめて書いたコードですが、 よろしくお願いいたします。 # MIMEエンコード $mail_to = mimeencode($MAILTO); $mail_from = mimeencode($FORM{'name'}); $mail_subject = mimeencode($FORM{'subject'}); # 文字コードの変換 $body = jcode::jis($user_owner); # メールヘッダーの生成 $header = <<END; To: $mail_to From: $mail_from<$FORM{'email'}> Subject: $mail_subject Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-2022-JP # サーバー出力 print <<END; Content-type: text/html; charset=utf-8 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> # メールの送信 open(MAIL, "| $SENDMAIL -i -t -f $FORM{'email'}") or die("エラー:sendmailへのパイプが開けません"); print MAIL $header, $body; close MAIL; 部分的で分かりにくいかもしれませんが どなたか どうぞよろしくお願いいたします。

    • ベストアンサー
    • Perl
  • sendmailが上手く行きません。

    CGIに詳しい方、教えてください。 HP上にサンプル応募フォームを作って、アンケート形式で答えてもらい、その結果をメールで私に送ってもらう(sendmail)の件です。 以下のようにCGIを記入しています。 フォームに記入して「送信」すると、「送信は完了しました」というメッセージは出るのですが、一向にメールが届きません。 どこか記述がおかしいのでしょうか? なお、HPのFAQには Sendmailのパスは /usr/sbin/sendmail です。 と書いてあったので、それにあわせたつもりです。 よろしくお願いします。 ------------------------------------------- #!/usr/bin/perl $ver = 'PostMail v1.01'; #------------# # 基本設定 # #------------# # メールソフト種類 # 1 : sendmail (UNIX) # 2 : blatj (NT) $prog_type = 1; # コード変換ライブラリ require './jcode.pl'; # メールソフトまでのパス # → sendmailの例: /usr/lib/sendmail # → blatjの例: c:\www\mail\blatj.exe $mailprog = '/usr/sbin/sendmail'; # 送信先メールアドレス $mailto = '私のメールアドレス'; # 送信前確認 # 0 : no # 1 : yes $preview = 1; # メールタイトル $subject = "サンプル応募メール"; # ホスト名取得モード # 0 : $ENV{'REMOTE_HOST'}で取得できる場合 # 1 : gethostbyaddr関数で取得できる場合 $get_remotehost = 0; # スクリプト名 $script = './sample.cgi'; # 一時ファイル(blatjの場合のみ) $tempfile = "./$$\.tmp"; # 送信後の戻り先 $back = 'トップページのURL'; # method形式 (0=no 1=yes) $method = 'POST'; # bodyタグ $body = '<body bgcolor="#F1F1F1" text="#000000">'; ------------------------------------------

    • 締切済み
    • CGI