我正在通过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";
因此控制器有能力改变那些内容。我怎样才能做到这一点?此致
答案 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)