使用asp.net core 2.0的动态值发送邮件

时间:2017-10-19 01:43:38

标签: asp.net email asp.net-core-2.0

我正在通过asp.net Core 2.0发送电子邮件,就像这个tutorial一样,所以我有这样的东西进入我的控制器

largestRandomNumber()

它有效,但我想做的不那么通用。就像将代码发送到类并从控制器调用它一样。例如,在类中我想使用变量而不是像

这样的静态内容
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";

因此控制器有能力改变那些内容。我怎样才能做到这一点?此致

1 个答案:

答案 0 :(得分:0)

在你的控制器中,添加一个名为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)