C# 在ASP项目中在哪里提供电子邮件服务?
我有一个WEB Api项目。在项目的不同位置,它会向用户发送电子邮件 代码可能类似于以下标准代码:C# 在ASP项目中在哪里提供电子邮件服务?,c#,asp.net,dry,C#,Asp.net,Dry,我有一个WEB Api项目。在项目的不同位置,它会向用户发送电子邮件 代码可能类似于以下标准代码: MailMessage mail = new MailMessage("you@yourcompany.com", "user@hotmail.com"); SmtpClient client = new SmtpClient(); client.Port = 25; client.DeliveryMethod = SmtpDeliveryMethod.Network; client.UseDef
MailMessage mail = new MailMessage("you@yourcompany.com", "user@hotmail.com");
SmtpClient client = new SmtpClient();
client.Port = 25;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.UseDefaultCredentials = false;
client.Host = "smtp.google.com";
mail.Subject = "this is a test email.";
mail.Body = "this is my test email body";
client.Send(mail);
在我的项目中,创建和使用此方法的正确位置在哪里?在一个名为“服务”的文件夹中,有一个名为EmailService.cs的文件,其中包含上述代码,或者什么是保持代码干燥的最佳/正确做法?使用如下静态方法创建一个
utils
:
public static void SendEmail(string subject, string body)
{
using (var client = new SmtpClient(utilities.EmailHost, 25))
using (var message = new MailMessage()
{
From = new MailAddress(utilities.FromEmail),
Subject = subject,
Body = body
})
{
foreach (var address in utilities.RecipList.Split(new[] { "|" }, StringSplitOptions.RemoveEmptyEntries))
message.To.Add(address);
client.Send(message);
}
}
要调用此方法,请执行以下基本操作
SendEmail("this is a test email.","this is my test email body");
对我来说更像是一个意见问题。请注意,所有SMTP配置都可以放在web.config中。请参阅。为什么不使用静态方法创建一个类,将电子邮件逻辑放在一个位置,并构建动态电子邮件消息。。我将发布一个示例,因此,您会建议在项目中使用一个“utils”文件夹,其中包含一个Email.cs,如上所述?否,我会建议使用与您的项目相同的
名称空间在整个项目中可访问的utils.cs
文件。。在您的情况下,EmailService.cs
将是一个公共类,您将在该类文件中添加上述方法。。右键单击项目并选择添加新项,然后选择类文件
,然后在命名它时将其命名为EmailServiceUtils
,例如,IDE将生成具有适当命名空间的类文件
,这样的文件放在哪里?