2016-01-18 169 views
0

我想通過交換服務器ie(outlook.office365.com,因爲我可以從Outlook設置中看到它)使用SMTP從我的控制器(MVC4)發送電子郵件,但無法成功。我嘗試了許多以前的帖子的解決方案,但無法得到任何線索。我衷心感謝所有幫助,從你們.. 這裏是我的郵件配置:使用SMTP和交換服務器發送電子郵件時出錯office365.com

<system.net> 
    <mailSettings> 
     <smtp> 
     <network host="smtp.office365.com" userName="[email protected]" password="defaultPassword"/> 
     </smtp> 
    </mailSettings> 
    </system.net> 

這裏是我的電子郵件類: 公共級電子郵件 { 公共電子郵件(){}

private string Sender{ get; set; } 
    private List<string> Recipients { get; set; } 
    private string Subject { get; set; } 
    private string Body { get; set; } 

    public bool SendEmail() 
    { 
     try 
     { 
      var smptClient = new SmtpClient { EnableSsl = true }; 

      MailMessage newEmail = new MailMessage(); 
      foreach (var reciepent in this.Recipients) 
       newEmail.To.Add(new MailAddress(recipient)); 

      newEmail.From = new MailAddress(this.Sender); 
      newEmail.Subject = this.Subject; 
      newEmail.Body = this.Body; 
      newEmail.IsBodyHtml = false; 

      smptClient.Send(newEmail); 

      return true; 
     } 
     catch { return false; } 
    } 
} 

在上面的代碼中,如果我使用「EnableSsl = true」,我得到錯誤「服務器不支持安全連接。」。如果我禁用SSL,我得到以下錯誤:

SMTP服務器需要安全連接或客戶端未通過身份驗證。服務器響應是:5.7.57 SMTP;客戶沒有通過身份驗證發送匿名郵件在郵件從

回答

1
use this piece of code: 

MailMessage msg = new MailMessage(); 
    msg.To.Add(new MailAddress("[email protected]", "SomeOne")); 
    msg.From = new MailAddress("[email protected]", "You"); 
    msg.Subject = "This is a Test Mail"; 
    msg.Body = "This is a test message using Exchange OnLine"; 
    msg.IsBodyHtml = true; 

    SmtpClient client = new SmtpClient(); 
    client.UseDefaultCredentials = false; 
    client.Credentials = new System.Net.NetworkCredential("your user name", "your password"); 
    client.Port = 25; // give 587 if 25 is blocked 
    client.Host = "smtp.office365.com"; 
    client.DeliveryMethod = SmtpDeliveryMethod.Network; 
    client.EnableSsl = true; 
    try 
    { 
     client.Send(msg); 
     lblText.Text = "Message Sent Succesfully"; 
    } 
    catch (Exception ex) 
    { 
     lblText.Text = ex.ToString(); 
    } 
+0

謝謝,但我已經試過這個。它導致像我在我的問題 –

+0

中提到的相同的錯誤檢查您使用的端口號。可能是您的端口被阻止 –

+0

以前我使用過端口25,但是我收到錯誤「服務器不支持安全連接」。啓用S​​SL,所以我用端口587,但它仍然無法工作 –

1

最後,我會解決與我們有的域有關的問題。 對於面臨類似問題的人,以下是我如何修復它。 Follwoing被我的電子郵件設置:

<network host="smtp.office365.com" userName="[email protected]" password="defaultPassword"/> 

如果您在域,那麼您的用戶名必須具有域您的用戶名提到即[email protected]和Bang :)

乾杯! !

+0

很酷:) ...終於它爲你工作 –

相關問題