对象引用需要非静态字段,方法或属性System.Net.Mail.SmtpClient.EnableSsl.get
问题描述:
谁能帮我修正这个错误?我基本上试图让个人电子邮件客户端更熟悉该语言,但我似乎无法找到如何解决该问题。这是代码。对象引用需要非静态字段,方法或属性System.Net.Mail.SmtpClient.EnableSsl.get
private void fusionButton1_Click(object sender, EventArgs e)
{
String One = textBox1.Text;
String Two = textBox2.Text;
String Three = textBox3.Text;
String Four = textBox4.Text;
MailMessage message = new MailMessage();
message.From = new MailAddress("[email protected]");
message.To.Add(new MailAddress(String.Copy(Four)));
message.Subject = String.Copy(Three);
message.Body = String.Copy(One); String.Copy(Two);
SmtpClient client = new SmtpClient("smtp.gmail.com", 587);
client.Send(message);
NetworkCredential netCre = new NetworkCredential("[email protected]", "Pass");
client.UseDefaultCredentials = false;
SmtpClient.EnableSsl = true;
答
使用此行:
client.EnableSsl = true;
,而不是这样的:
SmtpClient.EnableSsl = true;
你引用非静态属性EnableSsl
静态。
注意:
你并不需要使用String.Copy
:
message.Subject = String.Copy(Three);
你可以直接使用此:
message.Subject = textBox3.Text;
message.Body = textBox1.Text + " " + textBox2.Text;
试试这个代码:
private void fusionButton1_Click(object sender, EventArgs e)
{
MailMessage message = new MailMessage();
message.From = new MailAddress("[email protected]");
message.To.Add(new MailAddress(textBox4.Text));
message.Subject = textBox3.Text;
message.Body = textBox1.Text + " " + textBox2.Text;
SmtpClient client = new SmtpClient("smtp.gmail.com", 587);
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.UseDefaultCredentials = false;
client.Credentials = new NetworkCredential("[email protected]", "Pass");
client.EnableSsl = true;
client.Send(message);
}
这工作,但现在它说:“类型‘System.Net.Mail.SmtpException’未处理的异常在System.dll中发生 附加信息:SMTP服务器要求安全连接或客户端未通过身份验证。服务器响应是:5.7.0必须首先发出STARTTLS命令。 f65sm3327693yhp.14 - 。gsmtp” 对任何想法 – 2014-09-01 01:53:50
感谢您的帮助它现在我要检查一下,看看是否我可以告诉在那里我搞砸了,并在那里这个固定感谢所有的。 。您的帮助 – 2014-09-01 03:06:17
欢迎邮件正文,你总是可以格式的电子邮件内容例如,你可以使用HTML标签格式化,比如'message.Body = textBox1.Text +“
” + textBox2.Text;'它会显示两个换行符,探索它,你也可以将其标记为答案。 – Hassan 2014-09-01 03:10:59