2014-09-01 85 views
1

谁能帮我修正这个错误?我基本上试图让个人电子邮件客户端更熟悉该语言,但我似乎无法找到如何解决该问题。这是代码。对象引用需要非静态字段,方法或属性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; 

回答

1

使用此行:

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); 
} 
+0

这工作,但现在它说:“类型‘System.Net.Mail.SmtpException’未处理的异常在System.dll中发生 附加信息:SMTP服务器要求安全连接或客户端未通过身份验证。服务器响应是:5.7.0必须首先发出STARTTLS命令。 f65sm3327693yhp.14 - 。gsmtp” 对任何想法 – 2014-09-01 01:53:50

+0

感谢您的帮助它现在我要检查一下,看看是否我可以告诉在那里我搞砸了,并在那里这个固定感谢所有的。 。您的帮助 – 2014-09-01 03:06:17

+0

欢迎邮件正文,你总是可以格式的电子邮件内容例如,你可以使用HTML标签格式化,比如'message.Body = textBox1.Text +“

” + textBox2.Text;'它会显示两个换行符,探索它,你也可以将其标记为答案。 – Hassan 2014-09-01 03:10:59