0
private byte[] BytesFromString(string str)
    {
        return Encoding.ASCII.GetBytes(str);
    }
    private int GetResponseCode(string ResponseString)
    {
        return int.Parse(ResponseString.Substring(0, 3));
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        TcpClient tClient = new TcpClient("plus.smtp.mail.yahoo.com", 465);
        string CRLF = "\r\n";
        byte[] dataBuffer;
        string ResponseString;
        NetworkStream netStream = tClient.GetStream();
        StreamReader reader = new StreamReader(netStream);
        ResponseString = reader.ReadLine();
        dataBuffer = BytesFromString("HELO " + CRLF);
        netStream.Write(dataBuffer, 0, dataBuffer.Length);
        ResponseString = reader.ReadLine();
        dataBuffer = BytesFromString("MAIL FROM:<myemail@yahoo.com>" + CRLF);
        netStream.Write(dataBuffer, 0, dataBuffer.Length);
        ResponseString = reader.ReadLine();
        dataBuffer = BytesFromString("RCPT TO:<" + TextBox1.Text.Trim() + ">" + CRLF);
        netStream.Write(dataBuffer, 0, dataBuffer.Length);
        ResponseString = reader.ReadLine();
        if (GetResponseCode(ResponseString) == 550)
        {
            Response.Write("Mai Address Does not Exist !");
        }
        dataBuffer = BytesFromString("QUITE" + CRLF);
        netStream.Write(dataBuffer, 0, dataBuffer.Length);
        tClient.Close();
    }

こんにちは、このコードはsmtp yahooサーバーでは機能しませんが、コードはgmail smtpサーバーで機能します TcpClient tClient = new TcpClient("gmail-smtp-in.l.google.com", 25)

error: 確立された接続は、ホスト マシンのソフトウェアによって行で中断されました。 Response String = reader.ReadLine();

ポートサーバーを25に変更しないでください!smtpサーバーとポートサーバーが有効かどうか? 電子メールが有効であることを確認する方法はありますか? 誰かが私を助けることができますか?

4

1 に答える 1

0

一部のサーバー マシンは、そのマシンが応答できないよりも、特定のサーバーからデータを取得するために応答するためのアルゴリズムに使用されていました.....

しかし、あなたが言うように、gmailはデータを提供するため、そのマシンは応答データに制限を使用できません......

于 2013-07-31T09:07:57.287 に答える