簡體   English   中英

發送郵件到Outlook帳戶ASP.Net C#

[英]Send mail to outlook account ASP.Net C#

到目前為止,這是我已經嘗試過的方法,我想向我們的學校電子郵件帳戶發送電子郵件,格式為jcvborlagdan@mymail.mapua.edu.ph或類似jcborlagdan@mapua.edu.ph的格式。 我確定這是一個Outlook帳戶,因此我為Outlook設置了smtp設置,但是當我這樣做時,我繼續遇到以下錯誤:

郵件發送失敗。

我在這里做錯了什么? 我已經搜索了錯誤,但是除了smtp設置之外,所有答案都與我的語法相同。 因此,我的Outlook的smtp設置肯定有問題。

SmtpClient smtpClient = new SmtpClient("smtp-mail.outlook.com", 25); //587
smtpClient.Credentials = new System.Net.NetworkCredential("mymail@mapua.edu.ph", "myPassword");
smtpClient.UseDefaultCredentials = true;
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
smtpClient.EnableSsl = true;

MailMessage mail = new MailMessage();


mail.From = new MailAddress("mymail@mapua.edu.ph", "CTMIS-no-reply");
mail.To.Add(new MailAddress("carlo.borlagdan@the-v.net"));
mail.CC.Add(new MailAddress("jcborlagdan@ymail.com"));
smtpClient.Send(mail);

為了使代碼正常工作,需要進行一些小的更改。

  1. 由於要使用自定義憑據,因此需要將UseDefaultCredentials設置為False
  2. 設置憑據之前,需要將UseDefaultCredentials設置為False。
  3. Outlook的SSL端口是587。

就這樣。

這是固定的代碼。

SmtpClient smtpClient = new SmtpClient("smtp-mail.outlook.com", 587); //587
smtpClient.UseDefaultCredentials = false;
smtpClient.Credentials = new System.Net.NetworkCredential("mymail@mapua.edu.ph", "myPassword");

smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
smtpClient.EnableSsl = true;

MailMessage mail = new MailMessage();
mail.From = new MailAddress("mymail@mapua.edu.ph", "CTMIS-no-reply");
mail.To.Add(new MailAddress("carlo.borlagdan@the-v.net"));
mail.CC.Add(new MailAddress("jcborlagdan@ymail.com"));
smtpClient.Send(mail);

關於UseDefaultCredentials

MSDN

某些SMTP服務器要求客戶端進行身份驗證,然后服務器才能代表它發送電子郵件。 如果服務器請求此SmtpClient對象使用當前登錄用戶的默認憑據進行身份驗證 ,則將此屬性設置為true

-

由於您不想使用Windows憑據進行身份驗證,因此將該屬性設置為False。 至於您需要把它放在前面的事實,我沒有官方消息,但是如果您在將該屬性設置為false之前設置您的憑據,則根本無法使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM