2015-10-20 30 views
0

我們正在使用微軟交換服務器outlook.office365的asp.net中的郵件系統。我們正在得到這個例外。使用Exchange Server在asp.net發送郵件(smtp-outlook.office365.com)

「System.Net.Mail.SmtpException:操作已超時」錯誤。請幫助我們。

btn_click(){ 
try{SmtpClient smtp = new SmtpClient("smtp.outlook.office365.com");        
       smtp.Host = "outlook.office365.com"; 
       smtp.Port = System.Convert.ToInt32("443");    
       System.Net.NetworkCredential cred = new System.Net.NetworkCredential("userid", "mypwd"); 
       smtp.Credentials = cred;    
       smtp.DeliveryMethod = SmtpDeliveryMethod.Network; 
       smtp.UseDefaultCredentials = false; 
       smtp.EnableSsl = true; 
       smtp.TargetName = "STARTTLS/outlook.office365.com"; 
       MailMessage msg = new MailMessage(); 
       msg.From = new MailAddress("frommailid", "username"); 
       msg.To.Add(new MailAddress("[email protected]"));    
       msg.Subject = "Test"; 
       msg.Body = "Test mail "; 
       smtp.Timeout = 60000; 
       smtp.Send(msg); 
}catch(exception ex) 
{ 
throw ex; 
} 
} 
+0

請分享您的代碼,以便我們調查問題? –

+0

請檢查上面的代碼.. – kartheekn

+0

嘗試使用端口587而不是443並更新我們,如果它工作 –

回答

0

請參考下面的代碼片段,並嘗試了這一點。它爲我工作。

記住:從字段應該是被用作SMTP用戶相同的電子郵件ID。所以在這個例子中,[email protected]應該是From電子郵件ID。

MailMessage mail = new MailMessage(); 
mail.To.Add(new MailAddress(ToField.Text)); 
mail.From = new MailAddress(FromField.Text); //From field should be same email id which is used as a SMTP user. 
mail.Subject = "Email Subject"; 
mail.Body = "Message Body"; 

SmtpClient client = new SmtpClient(); 
client.UseDefaultCredentials = false; 
client.Credentials = new System.Net.NetworkCredential("[email protected]", "Password"); 
client.Port = 587;//You can use Port 25 if 587 is blocked 
client.Host = "smtp.office365.com"; 
client.DeliveryMethod = SmtpDeliveryMethod.Network; 
client.EnableSsl = true; 
client.TargetName = "STARTTLS/smtp.office365.com"; 

try { 
    client.Send(mail); 
} 
catch (Exception ex) { 
    ResponseLabel.Text = "Error:" + ex.Message; 
}