• 締切済み

(海外特定サーバ)メールが届かない

過去の質問にも同じ、質問があったのですが、解決法(-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等は、表示されない という注意点があります。

みんなの回答

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.2

貴方がそのシステムに関して単なるユーザなら、システム管理者に確認を依頼してください。 管理者が対応してくれないようだったら、sendmail経由でなく、モジュールNet::SMTP等を利用して、直接メール送信するコードに変更すれば、エラーについて独自の処理が行えるので、障害解析に役立てられるかと。

参考URL:
http://www.perldoc.com/perl5.6.1/lib/Net/SMTP.html
welcomgoo
質問者

お礼

お返事遅くなってすみません。回答ありがとうございます。システム管理者にログの依頼をしたところ、ユーザには、その権利を与えていないとの回答でした。Net::SMTPを使ってみようと、思ったのですが、こちらもうまく動かず。。。(なにか初歩的なミスを見落としてるのだと思います。)もう少し、CGIの構造を整理してミスを再確認してみます。 osamuyさん、サポートありがとうございます。

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

メールがSPAM扱いされて、送り先側で拒否されているのでは。 maillogやらmessagesなどのシステムログを確認されてみては。

welcomgoo
質問者

お礼

投稿ありがとうございます。

welcomgoo
質問者

補足

maillogやmessagesなどのシステムログは、どうやったら、確認できるのですか?(素人質問で申し訳ありません。。) もし、スパムメールと判断されている場合、何かメールに付け加える必要がありますか?他のサーバを使って正常に送信されてくる場合、ヘッダにWarningというのは、書かれていません。 osamuyさん、書き込みありがとうございます

関連するQ&A