【发布时间】:2012-07-22 16:27:08
【问题描述】:
我想在注册页面向用户发送确认电子邮件。以下代码是相关部分:
try
{
SmtpClient sc = new SmtpClient();
System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage();
string Ema = u.UserMail.ToString();
MailAddress gonderen = new MailAddress("admin@gmail.com", "Hello");
sc.Host = "smtp.gmail.com";
sc.Port = 587;
mail.To.Add(Ema);
mail.Subject = "Confirmation Message";
mail.From = gonderen;
mail.IsBodyHtml = true;
mail.BodyEncoding = System.Text.Encoding.GetEncoding("ISO-8859-9");
mail.Body = "<html><body>";
sc.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis;
sc.Send(mail);
MESSAGE(true, "Sending mail is successful");
}
catch (Exception)
{
MESSAGE(true, "Sending mail is unsuccessful!");
}
但它不会向相关用户发送电子邮件。我查看了论坛,并在 web.config 中添加了以下部分:
<system.net>
<mailSettings>
<smtp from="myaddress@gmail.com ">
<network host="smtp.gmail.com" defaultCredentials="false"
port="587" userName ="myaddress@gmail.com" password="password" />
</smtp>
</mailSettings>
</system.net>
但一切都没有改变。然后我进行了调试,它进入了 try 语句,当涉及到sc.Send(mail); 时,它会掉下来捕捉。我的错在哪里?
此外,在调试过程中,我意识到它显示了这个错误:cannot get IIS pickup directory。我已经从服务中控制了我是否有 smtp 服务,但我看不到这个服务。此错误是否与该服务有关?
提前致谢。
【问题讨论】:
-
您使用哪种电子邮件服务?它不应该在主机下吗?
-
在调试时,我意识到主机等于“gmail.com”。你是这个意思吗?
-
你在用gmail服务器发邮件吗??
-
我不知道我使用哪个电子邮件服务。我只想从一个 gmail 地址向另一个 gmail 地址发送一封电子邮件。你能告诉我如何在代码中显示电子邮件服务吗?
-
我已经在这里回答了这个问题stackoverflow.com/questions/7982810/…希望这会有所帮助
标签: asp.net email iis smtp confirmation-email