我似乎无法让这个工作。我正在尝试从桌面应用程序发送电子邮件,但我不断收到错误
System.dll中发生未处理的“System.Net.Mail.SmtpException”类型异常
其他信息:SMTP服务器需要安全连接,或者客户端未经过身份验证。服务器响应为:5.7.0必须首先发出STARTTLS命令。 l9sm2010572yhb.26 - gsmtp“
当使用587作为端口时,我得到了这个
System.dll中出现'System.Net.Mail.SmtpException'类型的第一次机会异常 System.dll中出现未处理的“System.Net.Mail.SmtpException”类型异常 附加信息:操作已超时。
使用465作为端口时。
这是代码。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Net.Mail;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication15
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void genuineButton1_Click(object sender, EventArgs e)
{
Environment.Exit(0);
}
private void fusionButton1_Click(object sender, EventArgs e)
{
String Sender = textBox1.Text;
String Pass = textBox2.Text;
String Recepient = textBox3.Text;
String Subject = textBox4.Text;
String Body = richTextBox1.Text;
MailMessage message = new MailMessage();
message.From = new MailAddress(String.Copy(Sender));
message.To.Add(new MailAddress(String.Copy(Recepient)));
message.Subject = String.Copy(Subject);
message.Body = String.Copy(Body);
SmtpClient client = new SmtpClient("smtp.gmail.com");
client.Port = 465;
client.Send(message);
System.Net.NetworkCredential netCre = new System.Net.NetworkCredential(String.Copy(Sender), String.Copy(Pass));
client.UseDefaultCredentials = false;
client.EnableSsl = true;
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
}
}
任何想法?
答案 0 :(得分:1)
再添加两个库
使用system.Net; 使用system.Net.Mine;
如果您的SMTP脚本没有问题,但仍然收到上述消息,则应该是因为Gmail检测到您是第一次从我们的服务器登录您的Gmail帐户时阻止了我们服务器的身份验证另一个国家或地点。您需要登录gmail安全中心以批准身份验证。一旦您批准,
请等待几分钟,然后再从脚本发送电子邮件。以下是批准"异常活动提醒的步骤"来自gmail安全中心。
a)通过此链接打击或Google搜索" gmail security"进入gmail安全中心。并使用您的Gmail帐户https://accounts.google.com/ServiceLogin?elo=1
登录b)"安全" /"最近的活动" ,单击以"查看所有事件"
c)您将能够看到"异常活动" ,它将显示所有不寻常的活动事件,选择相关事件并通过点击"是的,那是我!"