我有以下代码,但我得到一个异常,即没有定义smtp主机.如果我正在运行此操作并在visual studio中对我的本地计算机进行测试,那么我需要做些什么才能从我的计算机发送电子邮件.我必须打开一些Windows服务吗?
private void SendMailToAdminToApprove(string email_, string name_)
{
MailMessage msg = new MailMessage();
msg.From = new MailAddress("address@domain.com", "Person's Name");
msg.To.Add(new MailAddress("a@gmail.com", "Adam"));
msg.Subject = "Message Subject";
msg.Body = "Mail body content";
msg.IsBodyHtml = true;
msg.Priority = MailPriority.High;
try
{
SmtpClient c = new SmtpClient();
c.Send(msg);
}
catch (Exception ex)
{
Console.Write("T");
}
}
Run Code Online (Sandbox Code Playgroud)
您需要将SMTP主机设置为指向实际的SMTP服务器.一种选择是在您自己的计算机上运行SMTP服务,但您也可以指向ISP的服务器.
编辑
正如pcampbell和Skeolan所提到的,实际值应该进入app.config.我不确定localhost是否会是一个例外:它取决于你是否想要选择不运行本地服务器.
您需要在此处指定SMTP主机:
string smtpHost = "localhost";
//or go to your config file
smtpHost = ConfigurationManager.AppSettings["MySmtpHost"].ToString();
SmtpClient c = new SmtpClient(smtpHost);
Run Code Online (Sandbox Code Playgroud)