Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在ASP项目中在哪里提供电子邮件服务?_C#_Asp.net_Dry - Fatal编程技术网

C# 在ASP项目中在哪里提供电子邮件服务?

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

我有一个WEB Api项目。在项目的不同位置,它会向用户发送电子邮件

代码可能类似于以下标准代码:

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将生成具有适当
命名空间的类文件
,这样的文件放在哪里?