メールの一括送信時に自分宛へメールを送る

このQ&Aのポイント
  • perl初心者の私がCSVの一括データへメールを送るスクリプトを製作していますが、自分宛にもメールが送信されてしまいます。送信の設定情報を編集しても解消できません。解決策を教えていただけませんか?
  • perl初心者の私が作成中のスクリプトで、CSVの一括データへメールを送信する機能を実装しています。しかし、自分宛にもメールが送信されてしまう問題が発生しています。解決策をご教授いただけませんか?
  • CSVの一括データへメールを送信するスクリプトをperlで作成していますが、自分宛にもメールが送信されてしまいます。送信設定情報を編集しても解消できません。どうしたら解決できるでしょうか?
回答を見る
  • ベストアンサー

メールの一括送信の時に自分宛へメールを送る

perl初心者です(^^; CSVの一覧DATAへメール一括送信するスクリプトを製作しています。 スクリプトを実行すると、自分(from)へも送信しているのですが、 どこを編集してもなくなりません(^^; 送信はmail.cgiに明記し、from等の設定情報は、base.cgiに明記しております。 どなたかご教授頂けませんでしょうか?? if (!open(OUTMAIL,"| @base[3] -t")) { &error($!); } print OUTMAIL "Mime-Version: 1.0\n"; print OUTMAIL "To: @base[2]\n"; print OUTMAIL "Subject: $subject\n"; print OUTMAIL "From: @base[2]\n"; print OUTMAIL "Bcc: $bccmail\n"; print OUTMAIL "Content-Transfer-Encoding: 7bit\n"; print OUTMAIL "Content-Type: text/plain\; charset=\"ISO-2022-JP\"\n\n"; print OUTMAIL "\n"; print OUTMAIL "$bun\n"; print OUTMAIL "\n\n"; close(OUTMAIL);

  • Perl
  • 回答数2
  • ありがとう数2

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

  • ベストアンサー
  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.1

「メールを複数宛てに一括送信する」限りは「自分充ては除外できない」です。 良く考えて下さい。 今から、A、B、Cさんに一括送信しようと考えます。 ToやCcに、A、B、Cさんを並べて書く訳にはいきません。 Aさんには、B、Cさんのメールアドレスを知られては困ります。 Bさんには、A、Cさんのメールアドレスを知られては困ります。 Cさんには、A、Bさんのメールアドレスを知られては困ります。 ToやFromやCcは「受け取った人に見えて」しまいますから、そこには書けません。 すると「宛先」には「Aさんでも、Bさんでも、Cさんでもない、別の誰か」を指定しなければなりません。「宛先を空欄にする訳にはいかない」ですからね。 もちろん、宛先に「メールの届かない、架空のアドレス」を指定する訳にもいきません。何故なら、架空アドレスを指定したら、送信後に「発信者にエラーメールが戻ってしまう」から。 では「メールがちゃんと届く実在のアドレスで、Aさんでも、Bさんでも、Cさんでもない、別の誰か」とは誰でしょう? その条件に合うのは「Fromと同一の、自分」しか居ません。 つまり「誰に送ったか伏せて、全員に一括送信する場合は、ToとFromを同一にする必要がある」のです。 自分に届かないようにするのは不可能なので、諦めましょう。 どうしてもと言うなら「メールが来たら、メールサーバーに溜めずに常に受信サーバーから削除するように設定された、メール廃棄用のメールアドレスを作り、そのアドレスを宛先にする」しかありません。

great_man2
質問者

お礼

全く基本的な部分が分かっていませんでした。 BCCでメールを送る設定になっていますよね? ですのでTOとFROMが一緒という事が理解できました(^^; さらに勉強を積んでtoでメール送信をするようにします(^^; お騒がせしました。

その他の回答 (1)

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

To フィールドを付けなきゃいいのに.

関連するQ&A

  • 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
  • SUBJECTのエンコードをすると文字化ける

    SUBJECTに40byte以上を設定して、エンコードをすると文字化けが発生します。 なぜ文字化けが発生するのか分かりません。 もしご存知の方がいれば、アドバイスをよろしくお願い致します。 SUBJECTに設定されている文字は 1234567890123456789012345678901234567890 です。 実際に届くメールのSUBJECTは 123456789012345678901234567 弦葦桶患況弦 です。 関数の内容は以下の通りです。 sub MailSend {  my $head = $_[0];  my $body = $_[1];  my $flgMime = $_[2]; #エンコード判定フラグ my $in_return = 0; my $rc;  my $cmdMail = "/usr/lib/sendmail -t";  &Jcode::convert( $$head{ "SUBJECT" }, "jis" ); foreach( @{$body} ){ &Jcode::convert( $_, "jis" ) }; if( $flgMime ){ $$head{ "SUBJECT" } = MIME::mimeencode($$head{ "SUBJECT" }); } $rc = open( OUTMAIL, "| $cmdMail" ) ; if($rc) { print OUTMAIL "MIME-Version: 1.0\n"; print OUTMAIL "Content-Type: text/plain; charset=\"iso-2022-jp\"\n"; print OUTMAIL "Content-Transfer-Encoding: 7bit\n"; print OUTMAIL "From: $$head{ $DefaultValue::FROM }\n"; print OUTMAIL "To: $$head{ $DefaultValue::TO }\n"; print OUTMAIL "Cc: $$head{ $DefaultValue::CC }\n"; print OUTMAIL "Bcc: $$head{ $DefaultValue::BCC }\n"; print OUTMAIL "Subject: $$head{ $DefaultValue::SUBJECT }\n"; print OUTMAIL "\n"; foreach( @{$body} ){ print OUTMAIL $_."\n" }; print OUTMAIL ".\n"; close( OUTMAIL ); foreach( @{$body} ){ print OUTMAIL $_."\n" }; print OUTMAIL ".\n"; close( OUTMAIL ); } else{ $in_return = 1; } return $in_return; }

  • Gmailへのメール送信で文字化け

    PHPでフォームメールの作っているのですが、Gmailで送信したメールを受け取ると□□□□□というように文字化けが起こっていまいます。 アウトルック、ホットメールなどは大丈夫なのですが、グーグルのGmailだけ駄目なようです。なぜ文字化けするのでしょうか? mb_language("Ja"); $header = "From: reminder@aaa.com\r\n"; $header .= "MIME-Version: 1.0\r\n"; $header .= "Content-Type: text/plain;charset=ISO-2022-JP\r\n"; $header .= "Content-Transfer-Encoding: base64"; $to = "aaa@gmail.com"; $subject = "送信テスト"; $body = "本文テスト本文テスト"; $subject = base64_encode($subject); $subject = mb_convert_encoding($subject,"ISO-2022-JP"); $subject = "=?ISO-2022-JP?B?" . $subject . "=?="; $body = base64_encode($body); $body = mb_convert_encoding($body,"ISO-2022-JP"); $success = @mail($to,$subject,$body,$header); if($success) print "成功"; else print "失敗";

    • ベストアンサー
    • PHP
  • Perlからメール送信で文字化け

    Perl5.8からsendmailを使ってメール送信しています。 髙や﨑が入ると文字化けします。文字化けしないようにする方法を教えてください。 #!/usr/bin/perl require 'jcode.pl'; require 'mimew.pl'; $sendmail = '/usr/lib/sendmail'; print"Content-type: text/html\n\n test\n"; if (!(open(OUT,"| $sendmail -t -i -f xxxx\@hogehoge.co.jp"))) { ; } print OUT "To: xxxx\@hogehoge.co.jp\n"; print OUT "From: xxxx\@hogehoge.co.jp\n"; print OUT "Reply-To: xxxx\@hogehoge.co.jp\n"; $subject = "サブジェクト 髙﨑"; $subject = &mimeencode($mail_subject); print OUT "Subject: $mail_subject\n"; print OUT "Mime-version: 1.0\n"; print OUT "Content-Type: text/plain\; charset=\"ISO-2022-JP\"\n"; print OUT "Content-Transfer-Encoding: 7bit\n\n"; $honbun = "メール本文 髙﨑"; &jcode'convert(*honbun, 'jis'); print OUT "$honbun\n"; close(OUT);

    • ベストアンサー
    • Perl
  • sendmail でのヘッダ部分Content-Transfer-Encodingについて

    あまりPerlに精通しておりませんが、よろしくお願いします。 Perl でフォームからメールを送信するページを作成しましたが、メールヘッダの部分に --------------- print OUT "Content-Type: text/plain; charset=iso-2022-jp\n"; print OUT "Content-Transfer-Encoding: 7bit\n"; print OUT "MIME-Version: 1.0\n"; --------------- という風に書いているのに、届くメールは Content-Type: text/plain; charset=iso-2022-jp MIME-Version: 1.0 になって、Content-Transfer-Encoding: 7bit が抜け落ちます。(場合によっては、Content-Transfer-Encoding: base64 になる) どういった原因が考えられるか、アドバイスいただければ幸いです。よろしくお願いします。

    • ベストアンサー
    • Perl
  • sendmailで送信したメールが届かなくなった。

    cgiからsendmailを使用してメール配信しています。 今までは問題なく動作していたのですが、最近、一部のお客様でメールが届かなくなったそうです。 迷惑メールとして拒否されているようです。 以下、cgiからsendmailを使用して、zzzz@zzzz.or.jpからxxxx@xx.so-net.ne.jpへメールを飛ばした例です。 迷惑メールに勘違いされるようなところは無いと思いますが、どこか変なところがありますでしょうか? 以下、見られてまずい部分は、****でマスクしています。 ■Perl(メール送信) if (!(open(OUT,"| $sendmail -t -i -f zzzz\@zzzz.or.jp"))) { &error; } print OUT "To: xxxx\@xx.so-net.ne.jp\n"; print OUT "From: zzzz mail<zzzz\@zzzz.or.jp>\n"; print OUT "Reply-To: zzzz mail<zzzz\@zzzz.or.jp>\n"; $mail_subject = &mimeencode($mail_subject); print OUT "Subject: $mail_subject\n"; print OUT "Mime-version: 1.0\n"; print OUT "Content-Type: text/plain\; charset=\"ISO-2022-JP\"\n"; print OUT "Content-Transfer-Encoding: 7bit\n\n"; &jis($comment); print OUT "$msg\n"; close(OUT); ■xxxx@xx.so-net.ne.jpが受け取ったときのメールヘッダー(Outlook Expressで確認) ■cgiで、zzzz@zzzz.or.jpからxxxx@xx.so-net.ne.jpへメール送信 Return-Path: <zzzz@zzzz.or.jp> Received: from [172.23.*.***] by ms78 with LMTP for <xxxx@xx.so-net.ne.jp>; Tue, 01 Dec 2009 12:45:58 +0900 Received: from www.zzzz.or.jp (www.zzzz.or.jp [210.166.**.**]) by imx01.ms.so-net.ne.jp with ESMTP id nB13jwqP028600 for <xxxx@xx.so-net.ne.jp>; Tue, 1 Dec 2009 12:45:58 +0900 (JST) Received: by www.zzzz.or.jp (Postfix, from userid 80) id A2B9D5A549; Tue, 1 Dec 2009 12:45:57 +0900 (JST) To: xxxx@xx.so-net.ne.jp From: zzzz mail<zzzz@zzzz.or.jp> Reply-To: zzzz mail<zzzz@zzzz.or.jp> Subject: =?ISO-2022-*********************?= =?ISO-2022-******************?= Mime-version: 1.0 Content-Type: text/plain; charset="ISO-2022-JP" Content-Transfer-Encoding: 7bit Message-Id: <20091201034557.zzzzzz@www.zzzz.or.jp> Date: Tue, 1 Dec 2009 12:45:57 +0900 (JST) 以上、よろしくお願いします。

  • 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
  • phpフォームで携帯へメール送信した場合の文字化け

    過去のよく似た事象を検索しましたが解決しなかったので 質問します。よろしくお願いします。 携帯電話のメールアドレスに送信するWEBフォームをphpで 作成したいのですが、文字化けが直らずに困っています。 コードは次のような感じです。 PCへのメールは文字化けせず、DoCoMoへ送るとsubjectは正常で本文が化けます。 またauとvodafoneへ送るとすべて化けます。 $to = "$_REQUEST['$email']"; $from = "info@aaa.bbb"; $subject = "テスト送信"; $message = "テストメールです" . $headers ='From: '. $from . "\r\n"      .'MIME-Version: 1.0' . "\r\n"      .'Content-Type: text/plain; charset=iso-2022-jp' . "\r\n"      .'Content-Transfer-Encoding:7bit' . "\r\n"      .'X-Mailer: PHP/' . phpversion(); if(mail($to, $subject, $message, $headers)==TRUE) print("メールを送信しました"); else print("メール送信に失敗しました"); 動作環境はSunOS5.7、Apache2.0、php5.0.3です。 コードはEUCで書いています。

    • ベストアンサー
    • PHP
  • メールヘッダのMIMEエンコードについて

    今、CGIでメールを送信するフォームを作成しているます。 日本語のsubjectを使う場合はMIMEエンコードをしなければいけないと聞いてmime_plsというライブラリで試してみたのですが、受信した結果、「1月1日」→「1 月 1 日」のように半角数字と全角文字の間にスペースが入ってしまいます。 これはどうしたらよいのでしょうか。 コードは以下のように書いています。 $mon = substr($reserveday, 4, 2); $day = substr($reserveday, 6, 2); $subject = sprintf("%d月%d日の件について", $mon, $day); &Jcode::convert(\$subject, 'jis'); $from = &mimeencode($from); $to = &mimeencode($to); $subject = &mimeencode($subject); $contents .= "本文"; &Jcode::convert(\$contents, 'jis'); my $send_buf=''; $send_buf .= "From: $from\n"; $send_buf .= "To: $to\n"; $send_buf .= "Subject: $subject\n"; $send_buf .= "Content-Type: text/plain; charset=iso-2022-jp\n"; $send_buf .= "Content-Transfer-Encoding: 7bit\n"; $send_buf .= "Mime-Version: 1.0\n"; $send_buf .= "\n"; $send_buf .= $contents; # メール送信 open(MAIL,"| $sendmail -t -i -f $from"); print MAIL $send_buf; close(MAIL); よろしくお願いします。

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

    いつもお世話になっております。 mail()、mb_send_mail() が使用できないため、smtp から 直接メール送信をしようと考えております。 (なぜ、mail()、mb_send_mail() が使用できないのかはわかりません。) // 件名 $subject = mb_convert_encoding($subject, "JIS", "EUC-JP"); $subject = '=?iso-2022-jp?B?' . base64_encode($subject) . '?='; // 本文 $msg = mb_convert_encoding($msg, "JIS", "EUC-JP"); // 送信 $fp = fsockopen('localhost', 25, $err_str, $err_no, 5); $header = "From: " . $from . "\r\n"; $header .= "To: " . $to . "\r\n"; $header .= "Reply-To: " . $from . "\r\n"; $header .= "Subject: " . $subject . "\r\n"; $header .= "Mime-Version: 1.0\r\n"; $header .= "Content-Type: Text/Plain; charset=iso-2022-jp\r\n"; $header .= "Content-Transfer-Encoding: 7bit\r\n"; fputs($fp, "HELO " . $smtp . "\r\n" ); fputs($fp, "MAIL FROM:" . $from . "\r\n"); fputs($fp, "RCPT TO:" . $to . "\r\n"); fputs($fp, "DATA \r\n"); fputs($fp, $header . $msg . "\r\n.\r\n"); fputs($fp, "QUIT \r\n"); 上記のように書きました。 一回目は送信できるのですが、二回目以降が送信できません。 サーバを再起動するとまた送信できるようになるのですが、 二回目以降はやはり送信できません。 何か原因が考えられますでしょうか。 ご教示よろしくお願いいたします。

    • 締切済み
    • PHP

専門家に質問してみよう