0

すでにメール サービスを利用していますが、このサービスは多くのサービスで使用されているため、別のアドレスを使用する必要があります。今、私はうまく動作するこのコードを持っています:

public static bool SendMail(Mail mail)
{
    var smtp = new SmtpClient();
    var credential = (NetworkCredential) smtp.Credentials;
    var mailMessage = new MailMessage
    {
        From = new MailAddress(credential.UserName, mail.DisplayName),
        Subject = mail.Subject,
        Body = mail.Body,
        IsBodyHtml = true
    };
    mailMessage.To.Add(new MailAddress(mail.To));
    if (!string.IsNullOrEmpty(mail.TemplatePath))
        mailMessage = embedImages(mailMessage, mail);
    smtp.Send(mailMessage);
    return true;
}

> And the web.config:

<mailSettings>
  <smtp from="mail@gmail.com">
    <network host="smtp.gmail.com" enableSsl="true" port="587" userName="mail@gmail.com" password="123456" />
  </smtp>
</mailSettings>

> The Mail parameter, is an object:

public class Mail
{
    public string Subject { get; set; }
    public string Body { get; set; }
    public string To { get; set; }
    public string TemplatePath { get; set; }
    public string DisplayName { get; set; }
    public string From { get; set; }
}

したがって、デフォルトでは mailSettings を使用する必要がありますが、プロパティ mail.From != null の場合、そのメールで送信する必要があります。

ありがとう

4

2 に答える 2

0

SmtpClient を使用してアラート メールを送信する方法を次に示します。私は ConfigurationManager.AppSettings を使用していますが、使用している構成ファイルの種類に関係なく同じ考え方が適用されます。「送信元」の電子メールを取得しようとし、null の場合はデフォルト値を使用します。

    string subject = "Email subject here."
    string msg = "Email body here."        

    string fromEmail = ConfigurationManager.AppSettings["fromEmail"];

    if (fromEmail == null)
        fromEmail = "default.address@gmail.com"

    string emailServer = ConfigurationManager.AppSettings["emailServer"];
    int emailServerPort = int.Parse(ConfigurationManager.AppSettings["emailServerPort"]);
    string toEmail; //email recipients         

     SmtpClient client = new SmtpClient(emailServer, emailServerPort);
     MailMessage mail = new MailMessage(fromEmail, toEmail, subject, msg);
     client.Send(mail);
于 2016-11-29T21:41:46.940 に答える