2016-05-12 115 views
0

正如我們向用戶發送自動生成的郵件。通過我們的代碼。讓我們考慮收件人emailid是Gmail的。那麼接收方就可以接收來自系統發送的郵件即系統或生成的代碼的郵件。如果他們沒有設置允許,那麼郵件發送失敗。如何避免這一點。我應該怎麼做才能發送郵件而不被客戶端/用戶郵件服務器拒絕。如何從代碼發送郵件而不發送郵件被接收方郵件服務器拒絕

我曾嘗試:

隱藏複製代碼

using (MailMessage mm = new MailMessage("[email protected]", trialEmail.Text)) { mm.Subject = "Send test"; string body = "Hello " ; mm.Body = body; mm.IsBodyHtml = true; SmtpClient smtp = new SmtpClient(); smtp.Host = "smtp.gmail.com"; smtp.EnableSsl = true; NetworkCredential NetworkCred = new NetworkCredential("[email protected]", "password"); smtp.UseDefaultCredentials = true; smtp.Credentials = NetworkCred; smtp.Port = 587; smtp.Send(mm); }

谷歌帳戶安全

下節「訪問不夠安全的應用」,就可以實現從訪問您的帳戶其他設備/應用程序......就像你的C#應用​​程序。

請注意,不再有「應用程序特定」部分。

一旦我在接收郵件賬戶中進行此設置,我就可以發送郵件。但問題是它是默認封鎖/關閉。並且大部分用戶不會打開它。有點令人驚訝的是,我們從亞馬遜或Facebook網站收到郵件而未啓用此設置。他們爲此做了什麼?

+0

試着把「smtp.UseDefaultCredentials = true;」 NetworkCredential聲明之前的表達式? – IrishChieftain

+0

嘿它的工作謝謝:) – kish

+0

我會發布它作爲答案。欣賞,如果你把它標記爲答案:-) – IrishChieftain

回答

1

試着把「smtp.UseDefaultCredentials = true;」 NetworkCredential聲明之前的表達式?