フリーのCGIにて下記の不具合が出ています。
修正を頼まれているのですが、よくわからず
作者に連絡がとれない状態ですので
お力を貸していただけると助かります。
ソースが必要かと思うのですが、長いので
どこを書くべきかもわかりません。
どの部分を書くべきかのご指示もお願いしたく
よろしくお願い申し上げます。
【CGIの内容】
sendmailを用いた、フォームデータのメール送信。
フォーム入力者へはToで確認メールを送り、
そのメールをBccで自分にも送る。
【不具合内容】
たまにBccのみ送信されない。(受信が出来ない?)
Toの相手(フォーム入力者)には届いている。
「たまに」という状態なのでなかなか再現も出来ず困っています。
No.1ベストアンサー
- 回答日時:
何が起きているのかを調べるのが先決でしょうね。
メールが送られない場合はエラーが戻ると思うのですが、そのエラーをどこに戻すようにしているか。
それを管理可能なメールアドレスに戻るように設定して、どんなエラーになっているかを確認してみてください。
メールログが閲覧可能ならばそれをチェックですね。
ご回答ありがとうございます。
エラーメールは届いていないので
サーバのログを見てみましたら
Invalid URI in request POSTを発見しましたが
時間が30分ほど後でしたのであまり関係がないように思います。
エラーなどがまったく起きず、Toには送れるのに
Bccには送れないといった現象が起こることもありますでしょうか?
毎回起こるわけではない(ほとんどの場合はおきない)ので
バグなのか何なのかもわからない状態です。
お手数をお掛けします。
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が見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript ラジオボタンによるフォームの開閉を行いたい 3 2022/03/31 21:30
- Visual Basic(VBA) VBAにてメール作成した際、一部指定箇所のみ赤文字にしたいです。 下記の内容ですと作成されたメール本 1 2022/04/27 13:31
- JavaScript 助けてください!スパムメールがとんでもなく大量に届きます。 3 2023/08/10 16:32
- その他(メールソフト・メールサービス) 大阪市プレミアム付き商品券のweb申し込みで楽天モバイルのEメールだと返信メールが届かない 2 2022/09/19 17:08
- 求人情報・採用情報 バイト面接について 2 2022/06/02 00:15
- 求人情報・採用情報 今日、ホテルのアルバイトに、タウンワークから応募しました。 すると、会社からGメールが届き、事前登録 1 2022/03/31 23:40
- その他(メールソフト・メールサービス) thunderbird BCCが来なくなった 1 2023/04/07 13:30
- Amazon アマゾン 7 2022/06/11 11:03
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- その他(セキュリティ) Facebookアカウントを乗っ取られ、ログインも出来ずパスワードの再設定もできずに困っている 2 2023/02/17 14:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA EasyCommでの送信
-
チャットを作る
-
お問い合わせフォームから送信...
-
Googleフォームを回答したか確...
-
VB6で、Bsmtp.dllを使って、メ...
-
NIFTYのCGIでSENDMAIL
-
メールフォームで送信すると「...
-
フォームを再送信しますか?
-
ACCESSから、メール送信を行い...
-
携帯のサイトでアンケートサイ...
-
Postmailの使用でメール受信が...
-
SendmailでHTML形式のメールを...
-
ビジネスメールの敬称
-
エクセルVBA テキストボックス...
-
数字以外の入力をエラーにする...
-
DATE型変数を初期化する方法
-
初歩的な事だと思います。 Sub...
-
テキストボックスの番号を使っ...
-
教えて!全角文字「μ」の半角
-
EXCEL VBA で指定した範囲に入...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Safariで「本当にこのフォーム...
-
フォームを再送信しますか?
-
お問い合わせフォームから送信...
-
Googleフォームを回答したか確...
-
ACCESSから、メール送信を行い...
-
メールフォームで送信すると「...
-
CGIでメールのReturn-Pathに値...
-
ホームページビルダーのメール...
-
Accessでメール一括送信ソフ...
-
BASP21のSendMailとSendMailEx...
-
VBA EasyCommでの送信
-
ソケットで通信するデータの帯...
-
VB.NET(2005)の"SerialPort" ...
-
sendmailでの複数メールアドレ...
-
フォーム送信とURLエンコードに...
-
VB6で、Bsmtp.dllを使って、メ...
-
文字のフォントの色で分岐する...
-
c# メールが送信できたか確認
-
WriteFileで送信できたかの確認...
-
safariの 「本当にもう一度フ...
おすすめ情報