プロが教えるわが家の防犯対策術!

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と書いてあり、
それをうつしました。

宜しくお願いします。

A 回答 (2件)

エラーメッセージに SMTP server response: 530


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

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

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

お礼日時:2007/10/19 14:46

メールサーバーを構築していない限りメールは送信できませんが


>(1)SMTP = メールアドレス用のsmtpサーバの設定
↑これは何を設定したんでしょうか?

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

この回答への補足

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

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

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

補足日時:2007/10/16 19:40
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!