• ベストアンサー
  • すぐに回答を!

sendmailでFROMに勝手に@~が追加される

またまた質問です。 sendmailでメールを送っているのですが、 送信者の決定の所で、 $t_to="dareka@mail.co.jp"; $from = "admin@info.com"; ~略 print MAIL "To: $t_to\n"; print MAIL "From: $from\n"; ~略 $from = "admin@info.com"; とすると届いたメールの送信者は admin@info.com@www1000.wh.ocn.ne.jp になってしまいます。 つまり、送信者決定のところで、 「@www1000.wh.ocn.ne.jp」というのが 勝手に追加されてしまうんです。 これでは存在しないアドレスになり返信ができません。 同じような症状の出た方、いらっしゃいますでしょうか? ああ、もう期限が無いッス・・・。

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

  • 回答数2
  • 閲覧数112
  • ありがとう数1

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

  • ベストアンサー
  • 回答No.1
  • osamuy
  • ベストアンサー率42% (1231/2878)

sendmail.cfで、送信者に自ドメインを付加するルールセットが定義されているのかも。 sendmail.cfを、読み取り/修正する権限があるなら、そちらを確認してみては。 権限を持ってないなら、OCNに確認するしかないでしょう。 案外、Reply-Toを、メール・ヘッダーに追記するだけで済むかもしれませんが。

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

その他の回答 (1)

  • 回答No.2
  • so_blue
  • ベストアンサー率48% (50/104)

ちょっと強引すぎるかもしれませんが、 $from = "admin@info.com"; を $from = "admin@info.com,"; # カンマ付加 で、さしあたりは回避できるかも???

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

質問者からのお礼

解決しました! $from = "aaa\@aaa.com"; と設定していたのが原因でした。 $from = 'aaa@aaa.com'; にするとaaa@aaa.comだけになり、無駄な表記は付かなくなりました。 perlではエスケープでも、メールのヘッダーには「\」は意味を持つんですね。 勉強になりました。 以後、基本的に変数の要らない文章は''で囲うクセをつけます。

関連するQ&A

  • Perl(^^♪sendmailの使い方

    sub mail { # ここからロジック $admin = 'info@uhoo.jp'; open(MAIL, "|$sendmail $admin"); #本番用 と宣言しないと$adminにメールが送信されません。 $admin = 'info@uhoo.jp'; sub mail { # ここからロジック open(MAIL, "|$sendmail $admin"); #本番用 と$adminを宣言するとちゃんと$adminに送信されます。 ちなみに、 $admin = 'info@uhoo.jp'; sub mail { # ここからロジック open(MAIL, "|$sendmail $admin"); #本番用 print MAIL "From: $fn <$admin>\n"; とすると、$adminの内容は表示されますので、$adminに値は 入っています。 sendmailの使い方が間違っているのでしょうか?

    • ベストアンサー
    • CGI
  • sendmailで複数の宛先にメールする方法

    sendmailで複数の宛先にメールするにはどのような記述にすればいいですか? print(MAIL "To: info\@goo.ne.jp, admin\@goo.ne.jp\r\n"); とかって書けばいいんでしょうか?うまくうごかないのですが・・・。 よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • sendmailのFROMに日本語を使う

    CGIからsedmailを呼び出してメールを送信しています。 その時に差出人の部分の日本語が文字化けしてしまいます。 そこで&jcode'convertでjisに変えたのですが、今度は CGIがサーバーエラーになってしまいます。 どうすればよいでしょうか。 スクリプトはこんな感じです。 ----------------------------------------------- $from = '両国'; $subject = 'テスト'; &jcode'convert(*from, 'jis'); &jcode'convert(*subject, 'jis'); &jcode'convert(*msg, 'jis'); $errno = 1 unless open(MAIL, "| /usr/lib/sendmail -t"); return 0 if $errno; print MAIL "To: $MailTo\n"; print MAIL "From: $from\n"; print MAIL "Subject: $subject\n"; print MAIL "Content-Type: text/plain;\n\n"; print MAIL "$msg\n"; $errno = 2 unless close(MAIL); return 0 if $errno;

    • ベストアンサー
    • Perl
  • CGI掲示板のSendmail送信について

    CGI掲示板を自作していますが、書き込み送信メールのSendmailによる送信処理でつまづきました。 以下のように記述すると、管理人である自分には登録メールが送られますが、 管理人以外に、書き込みした人にも登録確認メールが送られるようにしたいんです。 #Sendmailによる送信処理 if (open(MAIL,"| $sendmail -t")){ print MAIL "X-Mailer:legend2\n"; print MAIL "To: $administrator\n"; print MAIL "Errors-To: $administrator\n"; print MAIL "From: $administrator\n"; print MAIL "Subject: $subject\n"; print MAIL "MIME-Version: 1.0\n"; print MAIL "Content-type: text/plain; charset=ISO-2022-JP\n"; print MAIL "Content-Transfer-Encoding: 7bit\n"; print MAIL "$mail_comment\n"; print MAIL "\n"; close(MAIL); } } 以下のどれかを使うのでしょうか? print SENDMAIL "From: $sender <$from>\n"; print SENDMAIL "To: $to\n"; print SENDMAIL "Cc: $cc\n"; print SENDMAIL "Bcc: $bcc\n"; どうすれば良いか御教授下さい。宜しくお願いします。

    • 締切済み
    • CGI
  • sendmailについて

    CGIからサーバにあるsendmailを使おうとしているのですが、分からない点があります。 メール自体は、きちんと送信されるのですが、To以外のヘッダーが本文と一緒に送信されてしまいます。 メールの送信者欄と件名欄が空白になってしまい困ってます。分かる人がいましたら教えてください。 下記がソースです。 &jcode'convert(*subject,'jis'); &jcode'convert(*message,'jis'); open(MAIL,"|$sendmail -t -f $master_mail"); print MAIL "To: $mail\n"; print MAIL "From: $master_mail\n"; print MAIL "Subject: $subject\n"; print MAIL "Contnt-type: text/plain; charset=ISO-2022-JP\n"; print MAIL "Content-Transfer-Encoding: 7bit\n\n"; print MAIL "$message\n"; close(MAIL);

    • ベストアンサー
    • Perl
  • sendmailで送信すると、迷惑メールになります

    フォームに入力された内容をperlでsendmailを使って送信すると、ウイルス対策ソフトの判定で、迷惑メールに入ってしまいます。 ▼プログラム $subject = 'テストメール'; $msg = "------------------------------------------------------------------ [名前] $name [住所] $address ------------------------------------------------------------------"; # subjectをBase64エンコード jcode::convert(\$subject, 'euc'); jcode::convert(\$subject, 'jis', 'euc', 'z'); $subject = '=?ISO-2022-JP?B?' . encode_base64($subject, '') . '?='; # 本文をJISに変換 jcode::convert(\$msg, 'jis'); &mail($to_mail, $from_mail, $subject, $msg); ▼サブルーチン sub mail{ my($to_mail, $from_mail, $subject, $msg) = @_; # sendmailによるメール発信 my $sendmail = '/usr/lib/sendmail'; # sendmailパス open(MAIL,"| $sendmail -t") || &error("メール送信に失敗しました"); print MAIL "To: $to_mail\n"; print MAIL "From: $from_mail\n"; print MAIL "Subject: $subject\n"; print MAIL "X-Mailer: Mail Form Sendmail\n"; print MAIL "Content-Transfer-Encoding: 7bit\n"; print MAIL "Content-type: text/plain; charset=\"iso-2022-jp\"\n"; print MAIL "MIME-Version: 1.0\n\n"; print MAIL "$msg"; close(MAIL); } print MAIL "Content-type: text/plain; charset=\"iso-2022-jp\"\n"; を print MAIL "Content-type: text/plain;\n"; にすれば迷惑メールにならずに済むのですが、一部の利用者(特にMacユーザー)で、送信されたメールが文字化けしているようですので、何とかcharsetの指定も入れたいと思っています。 上記のプログラムで、おかしいところがあるでしょうか? どうか、ご教示いただけますよう、よろしくお願いします。

    • ベストアンサー
    • CGI
  • sendmail実行時のエラー

    受け渡されたパラメーターをセットしてsendmailを実行すると「Premature end of script headers:」というエラーになります。 試しにパラメーターを直セットしてsendmailすると、文字化けはしますが送信はされました。 メールでなく、ファイルに出力してみたところ、 From: " =?ISO-2022-JP?B?GyRCJDUkRiQ1JEYbKEI=?= "<xxxx@xxxx.ne.jp> Subject: =?ISO-2022-JP?B?GyRCIXo7cU5BQEE1YRsoQg==?= この2つだけが文字化けしていて、本文は大丈夫でした。 ソースは以下の通りです。 require './jcode.pl'; # MIMEエンコードライブラリを使う $mimew = './mimew.pl'; ・・・・・略 # MIMEエンコード if (-e $mimew) { require $mimew; $subject = &mimeencode($mail_sub); $from = &mimeencode("From: \"$in{'cname'}\" <$in{'mail'}>"); } else { $subject = $mail_sub; &jcode'convert(*subject,'jis'); $from = "From: $in{'mail'}"; } ・・・・パラメータのコンバート&jcode'convert(データ, 'jis'); ・・・・メール本文($mail_body)のセット $err = 0; open(MAIL,"| $sendmail -t") || $err = 1; print MAIL "To: $mailto\n"; print MAIL $from, "\n"; print MAIL "Subject: $subject\n"; print MAIL "Content-Type: text/plain; charset=ISO-2022-JP\n"; print MAIL "Content-Transfer-Encoding: 7bit\n\n"; print MAIL "$mail_body\n"; close(MAIL); 文字化けもですが、まずはエラーを解消するにはどうしたらいいでしょうか。教えて下さい。お願いします。

  • sendmail_fromについて(xampp)

    いつもお世話になっております。 今回はメールの送信についてなのですが、 メール送信用のフォームをつくり実行してみたのですが以下のエラーが出てしまいます。 Warning: mail() [function.mail]: "sendmail_from" not set in php.ini or custom "From:" header missing in C:\xampp\htdocs\sample\mail2.php on line 27 c:/xampp/php/php.ini(およびphp5.ini)を [mail function] ; For Win32 only. SMTP = localhost smtp_port = 25 ;For Win32 only. sendmail_from = *******@yahoo.co.jp と変更しapacheを再起動して phpinfo()で変更を確認してみたのですが 「sendmail_from    no value no value」 と変更が反映されません。 ここの変更が反映されない限りエラーが出続けてしまうと思うのですが、どうすれば変更が反映されるのでしょうか? 使ってるバージョンは php 5.25 xampp 2.5です。 よろしくお願いいたします。

    • 締切済み
    • PHP
  • sendmailについて

    以前ここで同様の質問を見たような気がするのですが、時間がないので、また質問させてください。 プロバイダーのsendmailを使ってメールマガジン送信フォームを作成したのですが、2600件メール送信実験中960件辺りで止まってしまいます。 スクリプトは以下の通りです。 foreach (@mailto) { $ok_cnt ++; if (open(MAIL,"| $sendmail -t")) { print MAIL "FormMailer: HOT-NET BINGO Original Mailer Vs2.00\n"; print MAIL "Reply-to: $master\n"; print MAIL "From: $master\n"; print MAIL "To: $_\n"; print MAIL "Subject: $subject\n"; print MAIL "Content-Transfer-Encoding: 7bit\n"; print MAIL "Content-Type: text/plain; charset=iso-2022-jp\n"; print MAIL "\n\n"; print MAIL "$message\n"; print MAIL "\n"; close(MAIL); open(TMP,">>$tmpfile"); print TMP "$ok_cnt\t$_\n"; close(TMP);           if (($ok_cnt % 100) == 0) {sleep 5;} } 当初4~500件位で止まってしまっていたので、 100件送信ごとに5秒のインターバルをおいてみました。 何がダメで止まってしまうのでしょうか? また、何か良い方法があれば教えていただけませんか?

    • 締切済み
    • CGI
  • sendmailでメールを送信する時

    perlです。 sendmailでメールを送信する時に From: ←の部分に日本語を使う時はどのようにすればいいでしょうか? 例えば From: =?ISO-2022-JP?B?GyRCIVgkRyRiJDMkYCFZGyhC?= <xxxxxx@xx-xx.com> ↑ のようにするには print MAIL "From: $master\n";  ↑ の部分をどのように設定すればいいのでしょうか?

    • ベストアンサー
    • CGI