- ベストアンサー
bccメール送信について
- bccメール送信についての不具合が発生しており、修正方法を探しています。
- フリーのCGIを使用しているため、作者に連絡が取れず困っています。
- 送信されない場合があり、再現性が低いため解決策が見つかりません。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
何が起きているのかを調べるのが先決でしょうね。 メールが送られない場合はエラーが戻ると思うのですが、そのエラーをどこに戻すようにしているか。 それを管理可能なメールアドレスに戻るように設定して、どんなエラーになっているかを確認してみてください。 メールログが閲覧可能ならばそれをチェックですね。
その他の回答 (4)
- 藤田 朋郎(@hujitomo)
- ベストアンサー率54% (39/71)
>&error('システム異常','\申し訳ありませんが何らかの原因で処理できません.'); >「\申し訳ありませんが・・・」の \ は不要です。これですと \ そのものが表示されます。 多分このスクリプトは Shift_JIS で書かれているのでは? まぁそうだとしてもエスケープする位置が間違っているのですが。 &error('システム異常','申\し訳ありませんが何らかの原因で処理できません.'); おそらくこうしたかったのでは?
- okmotokun
- ベストアンサー率59% (92/155)
コードそのものには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が見れるまで上記修正して様子を見てみます。 ありがとうございました。
- MOMON12345
- ベストアンサー率32% (1125/3490)
#1です。 maillogにエラーがないとすると、先方までは届いていると言うことになります。 宛先アドレスでログをサーチすれば送信成功のログが出てくるでしょう。 こうなると、今度は受信側の問題が考えられます。 送るメールの内容などによってspam判定されてしまうとか、或いは送り側のspf設定がうまく行っていないとか、可能性は低いと思いますがブラックリストに載っているとか。 送り先のメールサーバのログが見られればいいのですが。
補足
見ていたログはサーバのエラーログで maillogではなかったのでもう一度見直して見ます。 といってもおそらくレンタルサーバなので 見れるかどうかも心配なのですが・・・
- okmotokun
- ベストアンサー率59% (92/155)
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";
お礼
ご回答ありがとうございます。 エラーメールは届いていないので サーバのログを見てみましたら Invalid URI in request POSTを発見しましたが 時間が30分ほど後でしたのであまり関係がないように思います。 エラーなどがまったく起きず、Toには送れるのに Bccには送れないといった現象が起こることもありますでしょうか? 毎回起こるわけではない(ほとんどの場合はおきない)ので バグなのか何なのかもわからない状態です。 お手数をお掛けします。