Cav*_*rob 6 .net console smtp app-config mailsettings
我已将邮件设置放在app.config中,并可以成功将它们拉入mailSettingsSectionGroup对象.但是,我不确定如何使用这些设置发送消息.
这是我到目前为止:
System.Configuration.Configuration config =
ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
MailSettingsSectionGroup mailSettings =
config.GetSectionGroup("system.net/mailSettings") as
System.Net.Configuration.MailSettingsSectionGroup;
Run Code Online (Sandbox Code Playgroud)
接下来使用mailSettings对象需要做什么?
Cha*_*adT 18
具体来说,该Send(...)方法.SmtpClient将自动从app/web.config文件中提取详细信息.您无需执行任何操作来使用配置,它们都会自动处理.
编辑以添加SMTP Web.Config示例:
<system.net>
<mailSettings>
<smtp from="foo@bar.com">
<network host="yoursmtpserver.com" />
</smtp>
</mailSettings>
</system.net>
Run Code Online (Sandbox Code Playgroud)
我有一个自定义类:
using System;
using System.Configuration;
using System.Net;
using System.Net.Configuration;
using System.Net.Mail;
namespace MyNameSpace
{
internal static class SMTPMailer
{
public static void SendMail(string to, string subject, string body)
{
Configuration oConfig = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
var mailSettings = oConfig.GetSectionGroup("system.net/mailSettings") as MailSettingsSectionGroup;
if (mailSettings != null)
{
int port = mailSettings.Smtp.Network.Port;
string from = mailSettings.Smtp.From;
string host = mailSettings.Smtp.Network.Host;
string pwd = mailSettings.Smtp.Network.Password;
string uid = mailSettings.Smtp.Network.UserName;
var message = new MailMessage
{
From = new MailAddress(@from)
};
message.To.Add(new MailAddress(to));
message.CC.Add(new MailAddress(from));
message.Subject = subject;
message.IsBodyHtml = true;
message.Body = body;
var client = new SmtpClient
{
Host = host,
Port = port,
Credentials = new NetworkCredential(uid, pwd),
EnableSsl = true
};
try
{
client.Send(message);
}
catch (Exception ex)
{
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
这从我的 app.conf 文件中提取就好了。