- 締切済み
sendmailについて
こんにちは。自分でPHPを使ってフォームを作ったのですが、家のパソコンで送信をするとフォーム情報を受信することはできるのですが、入力した相手に自動返信をすることができません。(会社のサーバーを使った時は自動返信はできました。) フォームの送信ボタンを押すとセキュリティソフトから以下のアラートがでてきます。それが原因でしょうか? ヤフーの送信サーバーでsendmailの設定をしているので自動返信することはできないのでしょうか? わかる方はぜひ教えてください。よろしくお願いします。 ・セキュリティソフトのアラート文 電子メールメッセージを送信できませんでした。 メールサーバーがメッセージを拒否したためです。 451 See http://pobox.com/~djb/docs/smtplf.html ・PHP.iniファイルの設定 [mail function] ; For Win32 only. SMTP = smtp.mail.yahoo.co.jp smtp_port = 25 ; For Win32 only. sendmail_from = xxxxxxx@yahoo.co.jp
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- shimix
- ベストアンサー率54% (865/1590)
>>>送信前に受信動作が必須(POP before SMTP)ということもありませんね? >これはOEでツール>アカウント>プロパティ>サーバにある送信メール >サーバの認証が必要のチェックを外せばいいんですか? いえ、送信前に「受信動作をしなくても」送信できる環境なのかどうかを確認して欲しいということです。 #一番確実なのはtelnetで繋いでコンソールから送信してみることですが、 #慣れていないとちょっと無理かも(汗 ・・で、ちょっとYahooのHelpを調べてみました。 http://help.yahoo.co.jp/help/jp/mail/mailsoft/mailsoft-01.html http://help.yahoo.co.jp/help/jp/mail/mailsoft/mailsoft-35.html http://help.yahoo.co.jp/help/jp/mail/mailsoft/mailsoft-38.html smtp.mail.yahoo.co.jpの場合、SMTP認証もしくはPOP before SMTPが必要となっています。なので、直接繋いでの送信は出来ません。ISPがYahooBBだと仕方ありませんが、他のISPであればISPのSMTPを使うべきではありませんか?
- shimix
- ベストアンサー率54% (865/1590)
メーラの設定もSMTPは#25でOKですよね(OP25Bで弾かれる=#587で代替)ということはありませんね?また送信前に受信動作が必須(POP before SMTP)ということもありませんね? というかISPがYahoo(YahooBB)なら問題ないと思うのですが、それで間違いないですか? #普通は(直接SMTP接続可能な)ISPのSMTP(もしくはlocalhost)に投げるので・・
- shimix
- ベストアンサー率54% (865/1590)
実際の送信処理はどう書いているんでしょうか?mail()かmb_send_mail()だと思いますが、その部分を転記してください。 ちなみにYahooのSMTPへは「認証なし」で送れる環境ですよね?
お礼
ご返信ありがとうございます。 >>ちなみにYahooのSMTPへは「認証なし」で送れる環境ですよね? outlookの設定でサーバー認証のチェックを外したので、遅れます。 ※下記が実際の送信処理です。 フォーム内容のチェックやエラー処理などそれぞれ関数にして、 switch文でまとめて処理をしています。 /* メール送信 */ function sendmail(){ $mailbody = <<<EOM {$_POST[name]}様からお問い合わせがありました。 ------------------------------------------------------------ ■名前 {$_POST[name]} ■フリガナ {$_POST[kana]} ■電話番号 {$_POST[tel]} ■E-Mail {$_POST[email]} ■お問い合わせ内容 {$_POST[inquiry]} ------------------------------------------------------------ EOM; mb_language("japanese"); mb_internal_encoding("SJIS"); $headers = "From: ".$_POST[email]."\r\n"; $rcode = mb_send_mail(MAILTO, $SUBJECT, $mailbody, $headers); if(!$rcode){ error("メール送信エラー"); } } /* 自動返信メール */ function reply(){ $replyMessage= <<<EOM {$_POST[name]}様 ──────────────────────────────────── ■名前 {$_POST[name]} ■フリガナ {$_POST[kana]} ■電話番号 {$_POST[tel]} ■E-Mail {$_POST[email]} ■お問い合わせ内容 {$_POST[inquiry]} ──────────────────────────────────── EOM; mb_language("japanese"); mb_internal_encoding("SJIS"); $rcode = mb_send_mail($_POST[email], $SUBJECT_AUTO, $replyMessage); if(!$rcode){ error("メール送信エラー"); } }
お礼
ご回答ありがとうございます。 >>メーラの設定もSMTPは#25でOKですよね(OP25Bで弾かれる=#587で代替)ということはありませんね? ポートを587に変更するとエラーがでてきました。25で大丈夫です。 >>送信前に受信動作が必須(POP before SMTP)ということもありませんね? これはOEでツール>アカウント>プロパティ>サーバにある送信メールサーバの認証が必要のチェックを外せばいいんですか?