你需要smtp中繼或網關。我使用http://sendgrid.com/從雲端發送電子郵件,他們有一個免費的選項。
還有如何發送電子郵件的示例代碼,我重新考慮了他們的代碼,所以我可以從其他地方調用它。
public partial class Email
{
/// <summary>
/// Generic Email method used to send email through SendGrid
/// </summary>
/// <param name="ToAddressName">ToAddress, DisplayName</param>
/// <param name="FromAddress">Email address of sender</param>
/// <param name="FromName">Display Name of sender</param>
/// <param name="SendCopy">Send BCC to FromAddress</param>
public void SendEmail(Dictionary<string, string> toAddressName,
String fromAddress, String fromName,
String subject, String message,
bool sendCopy)
{
try
{
MailMessage mailMsg = new MailMessage();
// To
foreach (KeyValuePair<string, string> kvp in toAddressName)
{
string toAddress = kvp.Key;
string displayName = kvp.Value;
mailMsg.To.Add(new MailAddress(toAddress, displayName));
}
// From
mailMsg.From = new MailAddress(fromAddress, fromName);
if (sendCopy)
{
mailMsg.Bcc.Add(new MailAddress(fromAddress, fromName));
}
// Subject and multipart/alternative Body
mailMsg.Subject = subject;
string html = message;
mailMsg.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(html, null, MediaTypeNames.Text.Html));
// Init SmtpClient and send
SmtpClient smtpClient = new SmtpClient("smtp.sendgrid.net", Convert.ToInt32(587));
System.Net.NetworkCredential credentials = new System.Net.NetworkCredential("sendgridusername", "sendgridpassword");
smtpClient.Credentials = credentials;
smtpClient.Send(mailMsg);
}
catch (Exception ex)
{
Error error = new Error();
error.ReportError(ex);
}
}
(PS,如果你對我的代碼,我很想聽到它的任何評論,謝謝)
實際上u需要託管'SMTP'服務器或已經建立 – Sudantha
服務能解釋一下你的意思那呢?爲什麼這是必要的? – user420667
是否嚴格需要因語言/庫而異,但源自任何地方的電子郵件通常都會被某些過濾器和大型電子郵件主機阻止。 – ssube