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

使用asp.net core 2.0的动态值发送邮件,asp.net,email,asp.net-core-2.0,Asp.net,Email,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();

我通过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);
string mailBody = "Anything can be in the body\n. Mail contents.";
string subject = "Mail Subject";
string mailTo = "someone@someone.com"
SendEmail(mailTo, subject, mailBody)
它是有效的,但我想做的不是一般的。比如向类发送代码并从控制器调用它。例如,在类中,我想使用变量代替静态内容,如

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;
}
在控制器中使用它

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);
string mailBody = "Anything can be in the body\n. Mail contents.";
string subject = "Mail Subject";
string mailTo = "someone@someone.com"
SendEmail(mailTo, subject, mailBody)

所以你有发送电子邮件的代码。。。你想让代码写一个控制器和模型来发送电子邮件吗?这有点模棱两可,尤其是在没有任何现有MVC的情况下,你陷入了困境…“我正在工作发送电子邮件代码。。。我只想做得不那么一般,在需要的时候更改数据。例如,在home controller中,我想从类调用我的mail方法。所以我想覆盖此邮件的mailMessage.Body。现在在products controller中,我想使用同一个类,但我想覆盖这个控制器方法的mailMessage.Body。。。总之,我希望在类中有一个方法,并在创建时更改控制器中的内容want@AustinFrenchWhy你不是简单地让一个函数SendEmail并将结果变量作为参数从控制器传递给函数吗?你能解释一下如何实现吗@请核对我的答案