提问者:小点点

在windows应用程序中使用gmail SMTP服务器发送电子邮件时出错


我正试图用C#编写软件,在gmail SMTP服务器的帮助下使用gmail帐户发送电子邮件。它不会产生任何编译错误,但会在运行时抛出异常,即使代码正确无误。

这是我的密码:

using System.Net;
using System.Net.Mail;

private void button1_Click(object sender, EventArgs e)
{
    if (from.Text != "" && password.Text != "" && to.Text != "" && subject.Text != "" && receive.Text != "")
    {
        try
        {
            MailMessage mail = new MailMessage(from.Text, to.Text, subject.Text, receive.Text);

            SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
            SmtpServer.Port = 465;
            SmtpServer.Credentials = new System.Net.NetworkCredential(from.Text, password.Text);
            SmtpServer.EnableSsl = true;

            SmtpServer.Send(mail);

            MessageBox.Show("Mail Sent");
        }
        catch (Exception ex)
        {
            //MessageBox.Show(ex.ToString());
            textBox6.Text = ex.ToString();
        }
    }
    else
    { 
        MessageBox.Show("Fill all fields, then press Send button"); 
    }

以下是我得到的一个例外:

系统网邮政SmtpException:SMTP服务器需要安全连接,或者客户端未通过身份验证。服务器响应为:5.5。1需要身份验证。了解更多信息,请访问

at System.网。邮件。邮件命令。在System.网。邮件。邮件命令。发送(SmtpConnection conn,Byte[]命令,邮件地址从,布尔允许Unicode)
在系统。网。邮件。Smtp运输。SendMail(邮件地址发送者,邮件地址收集收件人,字符串传递通知,布尔允许Unicode,SmtpFailedRecipientExcION


共1个答案

匿名用户

GMail不支持SMTP提交的端口465。

您需要使用端口587。

也就是说,他们可能不会和你说话,因为他们对IP地址非常挑剔。如果你在一个动态范围内,它可能不会工作,即使你做得正确。

木卫一。IOException:无法从传输连接读取数据:网络io连接已关闭。

错误消息表明Google不想与您通话,并关闭了连接。