我正试图用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
GMail不支持SMTP提交的端口465。
您需要使用端口587。
也就是说,他们可能不会和你说话,因为他们对IP地址非常挑剔。如果你在一个动态范围内,它可能不会工作,即使你做得正确。
木卫一。IOException:无法从传输连接读取数据:网络io连接已关闭。
错误消息表明Google不想与您通话,并关闭了连接。