ホームページ >バックエンド開発 >PHPチュートリアル >smtp 経由での電子メールの送信について、専門家が助けてくれますか? 503 エラー: 最初に EHLO と AUTH が必要です。

smtp 経由での電子メールの送信について、専門家が助けてくれますか? 503 エラー: 最初に EHLO と AUTH が必要です。

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBオリジナル
2016-06-13 13:47:291960ブラウズ

smtp 経由のメール送信について、503 エラー: 最初に EHLO と AUTH が必要です
SMTP サーバー ドメイン "smtp.qq.com" を解決しています...
ホスト アドレス "119.147.74.45" ポート 25 に接続しています。 ..
SMTP サーバー "smtp.qq.com" に接続しました。
S 220 esmtp4.qq.com Esmtp QQ メール サーバー
C EHLO localhost
S 250-esmtp4.qq.com
S 250-PIPELINING
S 250-SIZE 52428800
S 250-AUTH LOGIN
S 250-AUTH=LOGIN
S 250 8BITMIME
C MAIL FROM:<839325966@qq. com> ;
C RCPT TO:<276190536@qq.com>
C DATA
S 503 エラー: 最初に EHLO と AUTH が必要です !
切断されました。
メッセージを 276190536 に送信できませんでした@ qq.com エラー: 503 エラー: 最初に EHLO と AUTH が必要です!

-----解決策------ --
メールを送信する前にログインする必要があります
ログイン情報を smtp.qq.com サーバーに送信しましたか?
------解決策------------------
1) QQ メールボックスの POP/SMTP 機能がオンになっているかどうかを確認します。
2) プログラムが複数回ログインし、悪意のあるログインとして QQ メールボックスによって拒否された可能性があります。別のメールボックスに送信してみてください。
3) コードを投稿すると、他の人がコードをチェックする方法がわかりません。
------解決策------------------
QQ メールボックスが正しく設定されていない可能性があります。pop3 サービスと smtp サービスが有効になっているかどうかを確認してください。
------解決策------------------
最初に EHLO と AUTH が必要です!

これは非常に明確ではありませんか?
まず挨拶し、握手をし、ログインを要求する必要があります。

PHP コード

if(!$fp=fsockopen($this->smtp['host'],$this->smtp['port'],$errno,$errstr)){
            $this->message[]="メール サーバーに接続できませんでした。以下を確認してください: rn1、サーバーのアドレスとポートが正しく設定されているかどうか! rn2、ネットワークがスムーズかどうか!";
            false を返します。
        }
        if(strncmp(fgets($fp,512),'220',3)!=0){
            $this->message[]="メール サーバーに接続できませんでした。以下を確認してください: rn1、サーバーのアドレスとポートが正しく設定されているかどうか! rn2、ネットワークがスムーズかどうか!";
            false を返します。
        }
        if($this->smtp['auth']){
            fwrite($fp,"EHLO ".$this->smtp['posthost']."rn");
            while($rt=strto lower(fgets($fp,512))){
                if(strpos($rt,"-")!==3 || empty($rt)){
                    壊す;
                }elseif(strpos($rt,"2")!==0){
                    $this->message="サーバーとの挨拶と握手中にエラーが発生しました";
                    false を返します。
                }
            }
            fwrite($fp, "認証ログインrn");
            if(strncmp(fgets($fp,512),'334',3)!=0){
                $this->message="検証のためにサーバーにログインを求めるときにエラーが発生しました";
                false を返します。
            }

            fwrite($fp,base64_encode($this->smtp['user'])."rn");
            if(strncmp(fgets($fp,512),'334',3)!=0){
                $this->message="SMTP AUTH LOGIN 検証ユーザー名エラー!";
                false を返します。
            }
            fwrite($fp,base64_encode($this->smtp['pass'])."rn");
            if(strncmp(fgets($fp,512),'235',3)!=0){
                $this->message="SMTP AUTH LOGIN 検証パスワードが間違っています!";
                false を返します。
            }
        } それ以外{
            fwrite($fp, "HELO ".$this->smtp['posthost']."rn");
        }
        $from = $this->smtp['from'];
        $from = preg_replace("/.*.*/", "\1", $from);
        fwrite($fp, "MAIL FROM: <$from>rn");
        if(strncmp(fgets($fp,512),'250',3)!=0){
            $this->message="送信者のアドレスが間違っています!";
            false を返します。
        }
        fwrite($fp, "RCPT TO: <$toemail>rn");
        if(strncmp(fgets($fp,512),'250',3)!=0){
            $this->message="受信者のアドレスが間違っています!";
            false を返します。
        }
        fwrite($fp, "DATArn");
        if(strncmp(fgets($fp,512),'354',3)!=0){
            $this->message="電子メール データの送信に失敗しました!";
            false を返します。
        }
        $msg = "日付: ".date("r")."rn";
        $msg .= "件名: $send_subjectrn";
        $msg .= "$追加rn";
        $msg .= "$send_messagern.rn";
        fwrite($fp, $msg);
        $lastmessage = fgets($fp, 512);
        if(substr($lastmessage, 0, 3) != 250){
            $this->message="メール サーバーに接続できませんでした。以下を確認してください: rn1、サーバーのアドレスとポートが正しく設定されているかどうか! rn2、ネットワークがスムーズかどうか!";
            false を返します。
        }
        fwrite($fp, "QUITrn");
        fclose($fp);
        true を返します。
 <div class="clear"></div>
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。