こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ローカル環境でのメール送信

PHP超初心者です。
ローカル環境でmb_send_mail関数をつかってメール送信をしたいのです
が、上手くいきません。

エラーメッセージは
Warning: mb_send_mail() [function.mb-send-mail]: SMTP server response: 530 5.7.0 Must issue a STARTTLS command first n44sm11126503pyh in C:\xampp\htdocs\○○○\○○.php on line 15
とでています。

文字コードはUTF-8で保存しており、

<?php
mb_language("ja");
mb_internal_encoding("UTF-8");
$mailto="○○○@○○○.jp";
$subject="タイトル";
$content="内容";
$mailfrom="From:".mb_encode_mimeheader("nicoko")."<○○○@フリーメールアドレス.com>";
mb_send_mail($mailto,$subject,$content,$mailfrom);
?>
です。
15行目はmb_send_mail($mailto,$subject,$content,$mailfrom);

色々調べたところ、
(1)SMTP = メールアドレス用のsmtpサーバの設定
(2)smtp_port = 25
(3)sendmail_from = メールアドレス
を設定しなおし、
C:\xampp\apache\bin\php.ini
C:\xampp\php\php.ini
C:\xampp\php\php5.ini
C:\xampp\php\php4\php.ini
全ての設定を変更しました。
またphpinfoで確認したところ(1)~(3)まで変更されていました。
(3)はOutlookのメールのアカウント→プロパティを見て
サーバー情報→送信メールに○○.○○○.jpと書いてあり、
それをうつしました。

宜しくお願いします。

投稿日時 - 2007-10-16 15:53:21

QNo.3434279

すぐに回答ほしいです

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

エラーメッセージに SMTP server response: 530
と出ていることから 何らかの理由でSMTPサーバからアクセスを拒否されています。
多くの場合、STMPサーバーの不正中継防止(SPAM中継)対策に引っかかっている可能性が高いです。他にサーバ側のパーミッション設定ミスなどが考えられますがoutlook等で送信できているのならそれは無いでしょう。
ユーザ側の設定不備の例を下記に示します。
・認証が必要なSMTPサーバーなのに、認証処理をしないで送信しようとした。
・FROM欄のドメインとしてSMTPサーバーが許可しているものを利用していない・
 多くのISPは、自社が管理しているドメイン名以外からの送信を許可していません。(FROM に使用されている@以降の文字列をチェック)

投稿日時 - 2007-10-17 15:15:41

お礼

回答ありがとうございます。
試行錯誤の結果、ポートがあいてないのがわかりました。

まだ、メールは送れていませんが、なんとかなりそうです。
詳しいことが聞けて感謝しております。
ありがとうございました。

投稿日時 - 2007-10-19 14:46:27

ANo.2

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

メールサーバーを構築していない限りメールは送信できませんが
>(1)SMTP = メールアドレス用のsmtpサーバの設定
↑これは何を設定したんでしょうか?

PHP超初心者でしたら
レンタルサーバーなどを借りてメール送信テストなどをされた方がいいと思いますよ。

投稿日時 - 2007-10-16 17:47:12

補足

回答ありがとうございます。
>(3)はOutlookのメールのアカウント→プロパティを見て
>サーバー情報→送信メールに○○.○○○.jpと書いてあり、
>それをうつしました。

上記の内容は(1)のことでした。かき間違いをしました。
申し訳ありません。

(3)は$mailtoに書いているメールアドレスを入力しました。

投稿日時 - 2007-10-16 19:40:15

あなたにオススメの質問