繁体   English   中英

使用ASP.NET Core 2.0使用动态值发送邮件

[英]Sending Mail using dynamic values with asp.net core 2.0

我正在像本教程一样通过asp.net Core 2.0发送电子邮件,所以我的控制器中有类似的内容

SmtpClient client = new SmtpClient("mysmtpserver");
client.UseDefaultCredentials = false;
client.Credentials = new NetworkCredential("username", "password");

MailMessage mailMessage = new MailMessage();
mailMessage.From = new MailAddress("whoever@me.com");
mailMessage.To.Add("receiver@me.com");
mailMessage.Body = "body";
mailMessage.Subject = "subject";
client.Send(mailMessage);

它可以工作,但我想减少通用性。 就像将代码发送给类并从控制器调用它一样。 例如在课堂上我想使用变量代替静态内容,例如

mailMessage.Body = "body";

相反,我想使用类似的东西:

 var body;
 mailMessage.Body = body;

因此进入控制器具有更改该内容的能力。 我该如何实现? 问候

在您的控制器中,添加一个名为SendEmail的私有函数,例如

private bool SendEmail(string mail_to, string mail_subject, mail_body)
{
   bool result = false;
   try
   {
    SmtpClient client = new SmtpClient("mysmtpserver");
    client.UseDefaultCredentials = false;
    client.Credentials = new NetworkCredential("username", "password");
    MailMessage mailMessage = new MailMessage();
    mailMessage.From = new MailAddress("whoever@me.com");
    mailMessage.To.Add(mail_to);
    mailMessage.Body = mail_body;
    mailMessage.Subject = mail_subject;
    client.Send(mailMessage);
    result = true;
   }
   catch(Exception ex){ result = false; }
   return result;
}

在您的控制器中使用

string mailBody = "Anything can be in the body\n. Mail contents.";
string subject = "Mail Subject";
string mailTo = "someone@someone.com"
SendEmail(mailTo, subject, mailBody)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM