アプリ版:「スタンプのみでお礼する」機能のリリースについて

PHPバージョン:PHP4.4
サーバー移行後、メールフォームが送れなくなり、以下エラーが出ました。
「Warning: mb_send_mail(): SMTP server response: 554 ・・・」
サーバーはまるごと移行(設定ファイルもそのまま)し、諸事情で過去サーバーも併用しています。
phpinfoで調べると、「SMTP」が「localhost」になっていませんでした。
「SMTP」が「localhost」ではない場合、どのようい対処したらよろしいのでしょうか?
どうかよろしくお願いいたします。

A 回答 (3件)

SMTP server response: 554 の後のメッセージが重要なのですが・・・。



外部のSMTPを利用しているのなら、SMTPの設定で認証が必要とかリレーを禁止しているとか、いくつかの制限があるんじゃないでしょうか。

ISPを利用しているのか自社サーバなのかによって、対処法が全く変わります。自社サーバなら、設定を変えれば済む話ですね。

この回答への補足

ご回答誠にありがとうございます。助かります。

>SMTP server response: 554 の後のメッセージが重要なのですが・・・。

Warning: mb_send_mail(): SMTP server response: 554 の次は以下のような文章です。

「Warning: mb_send_mail(): SMTP server response: 554 5.7.1<hoge@hogehoge.com>:Relay access denied in C:\...\...\...\...\hoge.php on line 57」

>外部のSMTPを利用しているのなら、SMTPの設定で認証が必要とかリレーを禁止しているとか、いくつかの制限があるんじゃないでしょうか。

認証制限がある場合は、こちらで対処なしでしょうか?

>ISPを利用しているのか自社サーバなのかによって、対処法が全く変わります。自社サーバなら、設定を変えれば済む話ですね。

ISPの占有です。設定ファイルをいじらずにフォームメールのコードを書いているPHPファイルを変更するだけでは無理でしょうか?

ご多忙のところ、恐れ入ります。

補足日時:2009/09/24 16:53
    • good
    • 0

Relay access denied なので、リレーが禁止されています。


Webサイトを置いているドメイン、メールを発信しようとしているドメインからのメールのリレーをSMTPが拒否しているので、そのままだと送信できませんね。
ISPにお願いし、SMTPの設定でリレーを許可して貰えばいいのですが、それが難しいとなると、localhostで送信可能か、試してみる価値はあります。

ini_set( "SMTP", "localhost");
ini_set( "smtp_port", 25);
ini_set( "sendmail_from", "sender@example.com); ←例です。

ini_setが利かない、またはlocalhostのsendmailなりqmailなりで送信可能に設定されているという事が前提です。
事前にtelnet等で確認して見るといいと思います。
--------
$ /usr/lib/sendmail -t -i ←パスは一例
To: to@example.com     ←例
Subject: test
From: from@example.com   ←例
              ←一行開け
test body          ←本文
.              ←ドットで抜ける
--------

それでも駄目ならPHPでソケット通信を書くしかないでしょうね。

というか、基本的な話ですが、SMTP送信をしようとしてるんですよね?
mail関数は試してはいないという事ですか?
    • good
    • 0
この回答へのお礼

お礼が遅くなりまして申し訳ございません。
結果、サーバー担当者に連絡し、修正してもらいました。
丁寧に記述していただき、大変参考になりました。
ありがとうございました。

お礼日時:2009/09/29 13:08

PEARのMailを使えば、自サーバーではない外部smtpサーバーを


指定してメールがおくれますよ
    • good
    • 0
この回答へのお礼

お礼が遅れまして申し訳ございませんでした。
サーバー設定を変更し、問題を解決しました。
頂いたご回答は、今度テストしてみます。
ご多忙のところ、誠にありがとうございました。

お礼日時:2009/09/29 13:11

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