- 締切済み
(海外特定サーバ)メールが届かない
過去の質問にも同じ、質問があったのですが、解決法(-f)を試したところ、うまくいかなかったので、重複しますが質問させていただきます。 sendmailのパスは、あっているのに、メールが届きません。他のサーバでは、うまく動いています。 メール送信のCGI部分は、以下の通りです。 -------------- sub mailsend{ &jcode'convert(*subject, "jis"); $mailhead = "To: $mailto<$mailto>\n"; $mailhead .= "From: $adminname<$mail>\n"; $mailhead .= "Subject: $subject\n"; $mailhead .= "\n"; if (-x $sendmail) { unless (open(OUT, "| $sendmail $mailto > /dev/null")) { &mail_err(); } unless (print OUT &mimeencode($mailhead)) { &mail_err(); } unless (print OUT $mailbody) { &mail_err(); } close(OUT); } else { &mail_err(); &error("$sendmailがありません。"); } } sub mail_err { &error("メールの送信に失敗しました。"); } ----------------------- エラーは、なにも返ってきません。 ちなみに、このサーバは、 1. 同じ断層にファイルをおいても、フルパスをかかなくてはいけない (フルパス例:/home/content/ログイン名の頭文字1/2/3/ログイン名/html/) 2. CGI-BINフォルダではなくCGIにする 3. CGI以下の断層では、image等は、表示されない という注意点があります。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- osamuy
- ベストアンサー率42% (1231/2878)
貴方がそのシステムに関して単なるユーザなら、システム管理者に確認を依頼してください。 管理者が対応してくれないようだったら、sendmail経由でなく、モジュールNet::SMTP等を利用して、直接メール送信するコードに変更すれば、エラーについて独自の処理が行えるので、障害解析に役立てられるかと。
- osamuy
- ベストアンサー率42% (1231/2878)
メールがSPAM扱いされて、送り先側で拒否されているのでは。 maillogやらmessagesなどのシステムログを確認されてみては。
お礼
投稿ありがとうございます。
補足
maillogやmessagesなどのシステムログは、どうやったら、確認できるのですか?(素人質問で申し訳ありません。。) もし、スパムメールと判断されている場合、何かメールに付け加える必要がありますか?他のサーバを使って正常に送信されてくる場合、ヘッダにWarningというのは、書かれていません。 osamuyさん、書き込みありがとうございます
お礼
お返事遅くなってすみません。回答ありがとうございます。システム管理者にログの依頼をしたところ、ユーザには、その権利を与えていないとの回答でした。Net::SMTPを使ってみようと、思ったのですが、こちらもうまく動かず。。。(なにか初歩的なミスを見落としてるのだと思います。)もう少し、CGIの構造を整理してミスを再確認してみます。 osamuyさん、サポートありがとうございます。