
sendmailを悪戦苦闘の末、ようやく使えるようになりました。それはめでたいのですが、どうもレンタルしているocnのサーバーではメールアドレスの贈り先が存在しない(空ではなく送り先メールアドレスの存在)とエラー画面になってしまうようなんです。
&mail_sub というsub関数を作っていてこれをcgiから呼び出しています。送れないまでも、エラーで画面が止まってしまうのは避けたいんです。if(&mail_sub)みたいにエラーを感知できたら良いのですが・・。
分かる方、どうか教えて(助けて)下さいー!
No.5ベストアンサー
- 回答日時:
気になったんですが、そのような送り先が存在しない場合のエラーメールの送信先は定義しないんですか?
sendmail のような、共有で使用するリソースの場合、誰が sendmail コマンドを叩いてエラーが起こったのかがわからない (多分、CGI の実行ユーザは、利用者で共有でしょうから…) 場合には、sendmail を発動させてるプロセスを kill している可能性があるかもしれません。
勝手な想像なので断言は出来ないですが、プロセスが kill されてるとかで500 エラーが返るのかもとふと思いました。
sendmail に -t オプション以外に、-f オプションで envelope-from を定義してあげれば、もしかしたら起こらないかも…
という事で、仮に、mahouさんのメールアドレスをmahou@somedomain.domだとした場合、
# sendmail起動
if (!open(MAIL,"| $sendmail -t")) { print "メール送信に失敗しました"; }
の行を、
# sendmail起動
if (!open(MAIL,"| $sendmail -t -fmahou\@somedomain.dom")) { print "メール送信に失敗しました"; }
みたいにしたら、うまくいくかも。。。
勝手な想像だけなので、「お試しあれ」感覚でとらえてください。
返信ありがとうございます!
今現在は妥協してしまい、そのまま使用することにしました。ただ、わかったことは、「相手先が存在しないとエラー」なのではなく、「メールアドレスの形」になってないと起こるエラーでした。
例えば、aaa@aaa.tekitouだとメールは送信されますが、aaa.tekitouだとエラー画面になってしまうのです。その辺、そのメールアドレスが存在しないとエラーと勘違いしてました。
次回、また開発があるのでそのときに試してみますね。
そしたら必ずnipotanさんに返信します。お待ち下さい。
No.4
- 回答日時:
No.3
- 回答日時:
エラー・メッセージは、どうなってますか?
CGI自体エラーになってなくても、正しいHTTP応答の形式になってないと、Webサーバーが500を返すこともあります。
基本的に、見たままのエラーメッセージや、具体的な入力内容、Webサーバーやメール・サーバーのログなどの補足情報も説明しとかないと、思い付く原因はたくさんありますから。
結構、errorlogだけで、あっさりと原因が判明することもありますし。
この回答への補足
osamuyさん、返信ありがとうございます。
Internal Server Errorで画面が真っ白になってしまってます。入力されたメールアドレスにメールを送るシステムなんですが、入力ミスかもしれないし、こうなることだけは避けたいのですが…。
perlでエラーをキャッチできないなら、サーバーの設定でしょうか。そうなるとレンタルサーバーなので無理になってきそうです、困りました…
No.2
- 回答日時:
送り先のメールアドレスが存在しない場合、
エラーを返すのはCGIではなくメールサーバです。
なので、CGIが存在しないメールアドレスを関知し
エラーを返すことで「エラーで止まる」ということはありません。
# 1 の方が言っているように
OCNは自作CGIが使えない可能性がありますし、
CGIが使えてもsendmailが使えないサーバなどありますので
一度仕様などを確認してみてはどうでしょうか。
それと、sendmailのパスは合ってますか?
この回答への補足
sendmailのパスは合ってます。
メール、ちゃんと送れてます。
ただ、メールアドレスが存在しないときに、
エラーになるんですよね。。。>SSIエラー?
同じ現象を味わったことある人居ますか?
No.1
- 回答日時:
OCNは、Page ONサービスでは、自分が用意したCGIは使用できないと思うのですが、
他のプランで、CGI可能にしてもらっているのでしょうか?
それとも、OCNの用意している「フォームCGIメール」のことでしょうか?
この回答への補足
高額な、他のプランです。
メールプログラムは自分で作成したものです。
# sendmail起動
if (!open(MAIL,"| $sendmail -t")) { print "メール送信に失敗しました"; }
print MAIL "To: $t_to\n";
print MAIL "From: $from\n";
print MAIL "Subject: $mail_sub\n";
print MAIL "MIME-Version: 1.0\n";
print MAIL "Content-type: text/plain; charset=ISO-2022-JP\n";
print MAIL "Content-Transfer-Encoding: 7bit\n";
print MAIL "X-Mailer: $ver\n\n";
print MAIL "\n";
print MAIL "$mail_body\n";
print MAIL "\n";
close(MAIL);
どうでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
- Excel(エクセル) 【マクロ】エラーが発生⇒実行時エラー58既に同名のファイルが存在 5 2022/08/31 10:03
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Visual Basic(VBA) パーソナルXLSBのfuctionを呼び出すと「Functionが定義されていません」のエラーになる 2 2022/08/22 22:51
- Visual Basic(VBA) VBAでfunctionを利用しようとしたときに「引数は省略できません」というエラーが出ます 1 2022/10/15 16:30
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- Visual Basic(VBA) Changeイベントで複数セルへの貼り付けおよび値削除時に1個目のセルのみエラーになる 3 2022/12/21 09:07
- Visual Basic(VBA) 【VBA】Excelの特定範囲のセルを画像で保存したい 2 2023/01/25 13:06
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
sendmailでFROMに勝手に@~が追...
-
ホームページビルダー20SPで...
-
ビジネスメールの敬称
-
初歩的な事だと思います。 Sub...
-
エクセルVBA テキストボックス...
-
テキストボックスの番号を使っ...
-
VBAでInputBoxの再入力をさせる...
-
エディットボックスの入力制限...
-
フォームを再送信しますか?
-
「イ分」・・・フンという文字...
-
DataGridView 列ごとの入力制限
-
DataGridViewの桁数制限に関して
-
Googleフォームを回答したか確...
-
お問い合わせフォームから送信...
-
DATE型変数を初期化する方法
-
TextBoxから数字が文字...
-
PHPによるフォーム入力プログラ...
-
入力フォームの値をQRコードで...
-
VBAのユーザーフォーム上で名簿...
-
excel vba でユーザーフォーム...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ホームページビルダー20SPで...
-
C言語でのメール送信
-
sendmailで存在しないアドレス...
-
ReturnPathが指定できない?
-
sendmailでメールが送信されない。
-
sysopenを使用したメール送信の...
-
他のサーバのSendmailへのパスは?
-
Movable Typeのシステムのメー...
-
sendmailが踏み台にされている...
-
sendmailのエラーを知りたい
-
(海外特定サーバ)メールが届...
-
hypermartのsendmailのパス?
-
ビジネスメールの敬称
-
エクセルVBA テキストボックス...
-
Googleフォームを回答したか確...
-
初歩的な事だと思います。 Sub...
-
テキストボックスの番号を使っ...
-
フォームを再送信しますか?
-
EXCEL VBA で指定した範囲に入...
-
VBAでInputBoxの再入力をさせる...
おすすめ情報