2017-07-02 66 views
-1

我在C#中創建了一個郵件發送器,但是程序在運行時會出錯。使用C發送郵件時出錯#

這是我的代碼:

MailMessage mail=new MailMessage("[email protected]","[email protected]","subject","this is a test"); 
     SmtpClient smtp =new SmtpClient("smtp.gmail.com"); 
     smtp.Port=587; 
     smtp.Credentials= new System.Net.NetworkCredential("username","pass"); 
     smtp.Send(mail); 

,這是錯誤:

System.Net.Mail.SmtpException: The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.7.0 Must issue a STARTTLS command first. 79sm6578238wrc.34 - gsmtp

+1

嘗試設置['.EnableSsl = TRUE;'](https://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.enablessl(V = vs.110) .aspx) – freefaller

回答

-1

用戶名在下面的線原始字符串?那麼會發生錯誤。

smtp.Credentials= new System.Net.NetworkCredential("username","pass"); 

的NetworkCredential你必須提供發件人的電子郵件和密碼。

例如:

string username = "[email protected]"; 
string pass = "whatever_your_password_is"; 
smtp.Credentials= new System.Net.NetworkCredential(username,pass); 
+0

嘗試@ freefaller的解決方案...希望它的工作原理 –

0

我使用Gmail這些參數;

SmtpClient smtpClient = new SmtpClient(); 
smtpClient.Host = "smtp.gmail.com"; 
smtpClient.Port = 587; 
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network; 
smtpClient.EnableSsl = true; 
smtpClient.UseDefaultCredentials = false; 
smtpClient.Credentials = new NetworkCredential(smtp_user, smtp_pass); 
smtpClient.Send(message);