• 締切済み

現在趣味でPHPを勉強しています。PHPでメールが送信できずに困ってい

現在趣味でPHPを勉強しています。PHPでメールが送信できずに困っています。お手数をおかけして申しわけありませんが、皆様のお知恵をお借しいただけますでしょうか。 よろしくお願いいたします。 ■サーバ環境 OS:windowsXP PHP:5.3.0 Apahce:2.2.11 ■困っている内容 PHP.iniで以下の設定の上、以下のプログラムでメール送信しましたが、以下のエラーが返ってきて送信できません。 (1)php.ini設定 *プロバイダーに指定されたメールサーバーとメールアドレス。コマンドプロンプトからはtelnetに接続でき、メール送信も可能。 [mail function] ; For Win32 only. ; http://php.net/smtp SMTP = mb.nifty.com ; http://php.net/smtp-port smtp_port = 25 ; For Win32 only. ; http://php.net/sendmail-from sendmail_from = xxxxxx@nifty.com (2)送信プログラム <?php //内部エンコーディング mb_internal_encoding("UTF-8"); //メール内容 $add = "xxxxx@live.jp"; $subject = "test"; $msg = "test"; //メールエンコーディング mb_language("Japanese"); //メール送信 if(mb_send_mail($add,$subject,mb_convert_encoding($msg,"JIS","UTF-8"))){ print "送信完了しました"; }else{ print "メール送信に失敗しました"; } ?> (3)エラー内容 Warning: mb_send_mail() [function.mb-send-mail]: SMTP server response: 501 5.0.0 Invalid domain name in C:\wamp\www\test\mail.php on line 15 メール送信に失敗しました (4)備考 自分でエラー内容からいろいろ調べてみたのですが、そのものずばりのエラー内容は少なく、何が原因かわかりませんでした。エラー内容からPHPがメール送信しようとしてもサーバではじかれているような感じがするのですが、いかがでしょうか。 ご存知の方がいらっしゃいましたらご教示ください。よろしくお願いいたします。

みんなの回答

  • ka-kichi
  • ベストアンサー率59% (22/37)
回答No.2

15行目でエラーが出ていると書いてあるので、15行目を見てみるとmb_send_mailの行ですよね。 mb_send_mailの中にはmb_convert_encodingは必要ないのではないでしょうか?

参考URL:
http://php.net/manual/ja/function.mb-send-mail.php
noname#119957
noname#119957
回答No.1

SMTPサーバー名は smtp.nifty.comではありませんか? すこし気になるのは。。port25は使用できる回線ですか?(固定IPなら25は使用できます。) たとえば、port587はどうでしょう。 http://support.nifty.com/support/information/op25b.htm

phpmania
質問者

お礼

ken tyanさま 貴重なアドバイスありがとうございます。 ご指摘の通りsmtp.nifty.comの587ポートで接続してみましたが、やはり同様のエラーになってしまいます。 telnetでコマンド経由で接続、送信できるので、どこか設定が間違っているのでしょうか? ken tyanさまを含め、ご存知の方がいらっしゃいましたらお手数ですが引き続きアドバイスをお願いいたします。

関連するQ&A