• ベストアンサー

ruby(cgi)からメールが送信できない

require "nkf" require "net/smtp" sendmail('local', 'title', output, 'admin@hoge.co.jp', "hoge@hoge.co.jp") とすると、正常にメールがhoge@hoge.co.jp宛に送信されます。 require "nkf" require "net/smtp" sendmail('local', 'title', output, 'admin@hoge.co.jp', $mail) ※$mailには"hoge@hoge.co.jp"が格納されています。 こうするとメールが送られて来ません。 問題はどこにあるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4903/10364)
回答No.4

#2です。 補足にお書きのプログラム片に、必要な変数設定を加えたものでは、どちらも問題なく動作します。 おそらくここにお書きで無い部分に問題があるんでしょう。

apache6
質問者

お礼

両方の動作を確認していただき、ありがとうございました。 変数でも動作することが分かり、追求していく内に原因が判明いたしました。 原因は$SAFE=1によるセキュリティー対策のためでした。 これをコメントアウトすれば解決しました。 ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

>p recipient2 の出力は"hoge@hoge.co.jp"です。 recipient2 に不正な文字が含まれていたりするのではないでしょうか recipient2 == "hoge@hoge.co.jp" とかして調べてみたらどうでしょうか

apache6
質問者

お礼

この結果は「true」が跳ね返ってきました。 原因は$SAFE=1によるセキュリティー対策のためでした。 これをコメントアウトすれば解決しました。 ありがとうございました。

すると、全ての回答が全文表示されます。
  • notnot
  • ベストアンサー率47% (4903/10364)
回答No.2

これだけのコード片では、$mail に値が正しく入ってないのでしょうとしか言いようがないです。 sendmailの直前で、print でもして調べてみては?

apache6
質問者

補足

調べていく内に、下記の箇所で不具合が出ております。 require "net/smtp" recipient2 = "hoge@hoge.co.jp" Net::SMTP.start(server, 25) {|smtp| smtp.send_mail(mail, sender, recipient2) } なら問題なく require "net/smtp" recipient2 = $mail_html p recipient2 Net::SMTP.start(server, 25) {|smtp| smtp.send_mail(mail, sender, recipient2) } なら不具合が出ます。 p recipient2 の出力は"hoge@hoge.co.jp"です。 変数の文字コードとかに決まりがあるのでしょうか?

すると、全ての回答が全文表示されます。
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

$mail だとグローバル変数ですが、 実行する前に、どこかで変更されている可能性はないですか 通常の変数にしてみたらどうでしょうか

apache6
質問者

補足

調べていく内に、下記の箇所で不具合が出ております。 require "net/smtp" recipient2 = "hoge@hoge.co.jp" Net::SMTP.start(server, 25) {|smtp| smtp.send_mail(mail, sender, recipient2) } なら問題なく require "net/smtp" recipient2 = $mail_html p recipient2 Net::SMTP.start(server, 25) {|smtp| smtp.send_mail(mail, sender, recipient2) } なら不具合が出ます。 p recipient2 の出力は"hoge@hoge.co.jp"です。 変数の文字コードとかに決まりがあるのでしょうか?

すると、全ての回答が全文表示されます。

関連するQ&A