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

bccメール送信について

フリーのCGIにて下記の不具合が出ています。 修正を頼まれているのですが、よくわからず 作者に連絡がとれない状態ですので お力を貸していただけると助かります。 ソースが必要かと思うのですが、長いので どこを書くべきかもわかりません。 どの部分を書くべきかのご指示もお願いしたく よろしくお願い申し上げます。 【CGIの内容】 sendmailを用いた、フォームデータのメール送信。 フォーム入力者へはToで確認メールを送り、 そのメールをBccで自分にも送る。 【不具合内容】 たまにBccのみ送信されない。(受信が出来ない?) Toの相手(フォーム入力者)には届いている。 「たまに」という状態なのでなかなか再現も出来ず困っています。

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

  • 回答数5
  • 閲覧数344
  • ありがとう数2

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

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

何が起きているのかを調べるのが先決でしょうね。 メールが送られない場合はエラーが戻ると思うのですが、そのエラーをどこに戻すようにしているか。 それを管理可能なメールアドレスに戻るように設定して、どんなエラーになっているかを確認してみてください。 メールログが閲覧可能ならばそれをチェックですね。

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

質問者からのお礼

ご回答ありがとうございます。 エラーメールは届いていないので サーバのログを見てみましたら Invalid URI in request POSTを発見しましたが 時間が30分ほど後でしたのであまり関係がないように思います。 エラーなどがまったく起きず、Toには送れるのに Bccには送れないといった現象が起こることもありますでしょうか? 毎回起こるわけではない(ほとんどの場合はおきない)ので バグなのか何なのかもわからない状態です。 お手数をお掛けします。

関連するQ&A

  • BCCでのメール送信結果

    メールを複数人に一斉送信するときに、TOは指定せず、BCCで送信した場合、後で送信結果を確認すると「宛先なし」となってBCCが表示されていないので、誰に送信したかわかりません。 BCCを表示させる方法はありますか? よろしくお願いします。

  • メールのBCCって…

    PCを中途半端な知識で使っています。 色々調べたりしたのですがわからないので教えて下さい。 メールをTOとBCCで送りました。理由は勿論TOの人に知らせずにBCCの人に内容を知らせたいからです。 TOの人は受信したメッセージのソースを見るとBCCがあることに気が付いてしまうのですか? 宜しくお願いします。

  • CGI メールフォームからBCCのアドレスにメールが送信できない(Perl)

    初心者で簡単なメールフォームを作成しております。 宛先となる支店を選択後、メールのTOにその支店のアドレスが入り、メールは受信できます。同時にBCCにも一人のアドレスを入力してメールを送信したいのですが、BCCにはメールが届きません。 以下に抜粋したソースを記述しますので、どなたかご教授願います。 --------------------- HTML 部分 ------------------------------ <form action="./cgi/●●/sendmail.cgi" name="myform" method="POST"> <table> <tr><td>あなたのメールアドレス</td> <td><input type="text" name="email" size="60" maxlength="60"></td> </tr> <tr><td>お問合せ先の支店を選択</td> <td><select name="address"> <option value="" selected>選択してください</option> <option value="aaaaa@domain.jp">A支店</option> <option value="bbbbb@domain.jp">B支店</option> <option value="ccccc@domain.jp">C支店</option> </select> </td> </tr> <tr> <td><input type="submit" name="submit" value="送 信"></td> <td><input type="reset" name="reset" value="キャンセル"></td> </tr> </table> </form> --------------------- cgi 部分 ------------------------------- require '../cgi-lib.pl'; require '../jcode.pl'; $sendmail = '/usr/sbin/sendmail'; $bcc_address = 'bccbcc@gmail.com'; $email = $in{'email'}; $address = $in{'address'}; &jcode'convert(*email,'sjis'); &jcode'convert(*address,'sjis'); $message = <<EOF; Subject: 質問 From: $email Errors-to: $email Reply-To: $email ------------------------------------------------------------- 質問内容 ------------------------------------------------------------- [お客様のメールアドレス] $email EOF open(MAIL,"|$sendmail $address"); print MAIL $message; print MAIL "BCC: $bcc_address\n"; close(MAIL); print <<EOF; Content-Type: text/html <html> <head> <title>送信しました</title> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> </head> <body> ●お客様のメールアドレス $email<br> </body> </html> EOF

その他の回答 (4)

  • 回答No.5

>&error('システム異常','\申し訳ありませんが何らかの原因で処理できません.'); >「\申し訳ありませんが・・・」の \ は不要です。これですと \ そのものが表示されます。 多分このスクリプトは Shift_JIS で書かれているのでは? まぁそうだとしてもエスケープする位置が間違っているのですが。 &error('システム異常','申\し訳ありませんが何らかの原因で処理できません.'); おそらくこうしたかったのでは?

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

  • 回答No.4

コードそのものにはBCCに関しては特に問題は無いようですね。 print OUT "Bcc: $ad_email\n"; は無しにして print OUT "To: $email,$ad_email\n"; としてみるとか。 または、メール送信部分をコピーして、To: に $ad_email を入れて別々に送信するようにしてみるとか。テストしてみてはいかがですか。 ところで、BCCとは関係ないですが、気になったところです。 &error('システム異常','\申し訳ありませんが何らかの原因で処理できません.'); 「\申し訳ありませんが・・・」の \ は不要です。これですと \ そのものが表示されます。 print OUT "Return-Path: $ret_path_mail\n"; これでは Return-Path: はセットできません。 -fスイッチを使います。 &jis("Subject: $FORM{'subject'}"); print OUT &jis("Subject: $FORM{'subject'}"); としないと、それと charset="ISO-2022-JP" なら MIMEエンコードはされていますか。ならば、 MIME-Version: 1.0 ヘッダが必要です。 print OUT "$msg\n"; ヘッダの出力完了前に $msg(本文)を出してはだめです。(typoですか?)

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

質問者からのお礼

いろいろいけないところがあったのですね。 そういうところを全て直せば解決するかもしれませんね。 フリーのものを少しいじっただけのようでして 古くから使っているそうなので きちんと見直す時期に来ているのかもしれません。 とりあえずmaillogが見れるまで上記修正して様子を見てみます。 ありがとうございました。

  • 回答No.3

#1です。 maillogにエラーがないとすると、先方までは届いていると言うことになります。 宛先アドレスでログをサーチすれば送信成功のログが出てくるでしょう。 こうなると、今度は受信側の問題が考えられます。 送るメールの内容などによってspam判定されてしまうとか、或いは送り側のspf設定がうまく行っていないとか、可能性は低いと思いますがブラックリストに載っているとか。 送り先のメールサーバのログが見られればいいのですが。

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

質問者からの補足

見ていたログはサーバのエラーログで maillogではなかったのでもう一度見直して見ます。 といってもおそらくレンタルサーバなので 見れるかどうかも心配なのですが・・・

  • 回答No.2

sendmail にメールヘッダを書き出している部分を示していただくと的確な回答ができるかもしれません。

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

質問者からの補足

ヘッダの部分は下記のようなソースで書き出してまして Toで届いているメールを見てみますと Fromに入っているアドレスが正しく表示されていますので Bccにも正しく設定できているように思うのですが・・・ こんな断片的なソースで大丈夫でしょうか? if (!(open(OUT,"| $sendmail -t"))) { &error('システム異常','\申し訳ありませんが何らかの原因で処理できません.'); } $ad_email =~ s/\:/\,/g; print OUT "Errors-To: $err_path_mail\n"; print OUT "Return-Path: $ret_path_mail\n"; print OUT "To: $email\n"; print OUT "Bcc: $ad_email\n"; print OUT "From: $ad_email\n"; &jis("Subject: $FORM{'subject'}"); print OUT "$msg\n"; print OUT "Content-Transfer-Encoding: 7bit\n"; print OUT "Content-Type: text/plain\; charset=\"ISO-2022-JP\"\n\n";

関連するQ&A

  • CGI メールフォームからBCCのアドレスにメールが送信できない(Perl)

    初心者で簡単なメールフォームを作成しております。 宛先となる支店を選択後、メールのTOにその支店のアドレスが入り、メールは受信できます。同時にBCCにも一人のアドレスを入力してメールを送信したいのですが、BCCにはメールが届きません。 以下に抜粋したソースを記述しますので、どなたかご教授願います。 --------------------- HTML 部分 ------------------------------- <form action="./cgi/sendmail.cgi" name="myform" method="POST"> <table> <tr><td>あなたのメールアドレス</td> <td><input type="text" name="email" size="60" maxlength="60"></td> </tr> <tr><td>お問合せ先の支店を選択</td> <td><select name="address"> <option value="" selected>選択してください</option> <option value="aaaaa@domain.jp">A支店</option> <option value="bbbbb@domain.jp">B支店</option> <option value="ccccc@domain.jp">C支店</option> </select> </td> </tr> <tr> <td><input type="submit" name="submit" value="送 信"></td> <td><input type="reset" name="reset" value="キャンセル"></td> </tr> </table> </form> --------------------- cgi 部分 -------------------------------- require '../cgi-lib.pl'; require '../jcode.pl'; $sendmail = '/usr/sbin/sendmail'; $bcc_address = 'bccbcc@gmail.com'; $email = $in{'email'}; $address = $in{'address'}; &jcode'convert(*email,'sjis'); &jcode'convert(*address,'sjis'); $message = <<EOF; Subject: 質問 From: $email Errors-to: $email Reply-To: $email -------------------------------------------------------------- 質問内容 -------------------------------------------------------------- [お客様のメールアドレス] $email EOF open(MAIL,"|$sendmail $address"); print MAIL $message; print MAIL "BCC: $bcc_address\n"; close(MAIL); print <<EOF; Content-Type: text/html <html> <head> <title>送信しました</title> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> </head> <body> ●お客様のメールアドレス $email<br> </body> </html> EOF

    • ベストアンサー
    • Perl
  • 勝手に白紙のメールが送信されてしまう。

    お問い合わせフォームにPerlのsendmailを使用しています。JavaScriptとCGIの両方で入力制限をかけ、未入力があると送信できないような設定にしてあるのですが、全て白紙(未入力)のメールが送られてきてしまいます。制限をかけているので、送られてくるはずはないと思うのですが…。制限の仕方が甘いのでしょうか?このようなことはあるのでしょうか?

    • 締切済み
    • CGI
  • ドコモN900iでBcc送信ができない

    AさんBさんCさんに同じメールを送るとき、それぞれに相手のアドレスを知られたくない場合はBccですよね?そのときABC三人共Bccをつけると送信ができません。Toの宛先を設定してくださいと表示されます。Toには何を入力したらよいですか?

  • 携帯メールの一括送信(BCC)について

    先日アドレス変更をした為、友人に変更メールを送りました。 一括送信で相手に送った人全員のアドレスが表示されるのが嫌だったのですが、BCCを使うのを薦められBCCで送信しました。 ・・しかし、宛先(TO)は表示される事・件名に『BCC』と出る事を知らず、TOも友達のアドレスで送ってしまいました・・。 調べてみたらBCCはこっそり送りたい時に利用するそうで、BCCで送られた友人からしたら気分よくないですよね; きちんと送信されなかったのか、気分を害したのかわかりませんが、BCC送信した友人の8割から返事が来なくて・・ (TO送信の友人からは返事がきました)・・これは偶然かもしれませんが; 失礼に当たる事ならお詫びも含めて改めてメールした方が良いのでしょうか? ・・慣れないことはするべきじゃないと実感しました。 関係ないかもしれませんが、携帯はドコモです!

  • ◆メールフォームのCGI配布 (送信確認画面と送信内容のコピーを送信)

    タイトルの通りなのですが、 ・送信ボタンを押すと送信内容の確認画面が出てきて、その画面で確認の上送信ボタンを押すと、内容が送信される ・その送信内容のコピーを、フォームに記入されたメールアドレス宛へ自動送信される メールフォームのCGIが欲しいんです。 ちなみに、sendmailは使えます。

    • 締切済み
    • CGI
  • BCCメールの使い方

    BCCメールの使い方 質問(1) to Aさん BCC Bさん BCC Cさん で送信した場合、A,B,Cのメールはどのように受信されるのですか? 質問(2) BCCメールを「送られた側(受信者)」は送信者がBCCで送ってきたことがわかるのですか? 目的 A,B,Cに其々のメールアドレスを晒すことなく、個別に同じ文章を一斉送信できるようにしたい。

  • メール送信先をBCCだけの初期設定は可能?

    関係者向けにメールで一斉連絡をすることがあるのですが、かつてBCCで送信すべきところを「TO」か「CC」で送ってしまい、関係者間でメールアドレスが開示されてしまうという事態が発生しました。 再発防止のためメールで送信する際に、送信先が自動的に「BCC」だけが設定され、「TO]「CC」は対象外になるような設定が可能なメールソフトなどはあるでしょうか。

  • CGIのみでメール送信

    SENDMAIL、SMTPを使わずCGIのみでHPに設置したフォームから メールの送信って出切るのでしょうか? 皆様のお知恵をご教授ください。 宜しくお願いします。

  • 携帯から携帯へのメールの一斉送信について。

    携帯から携帯へのメールの一斉送信について。 説明書を無くしてしまったので教えてください。 2年程前のソフトバンク携帯SH821です。 10人程度に同じ内容でメールを送信したいと思います。 受ける相手には、一斉送信で送られた内容だという事はわかっても大丈夫ですが、 他人のアドレスは表示させたくありません。 この場合、 TO を自分のアドレスに BCC aさん BCC bさん BCC Cさん   のように入力すればよいでしょうか?

  • auからのBCC送信

    携帯電話を変えたので、番号連絡をEメールを利用して行おうとしているのですが、BCCだけに宛先を入力すると、Toがないため送信できない、とメッセージが出ます。なんとかBCCだけで送ることはできないのでしょうか?