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