Как отправить подтверждение по электронной почте в asp.net, не могу получить ошибку каталога раскладки IIS
Я хочу отправить подтверждение по электронной почте пользователю на странице регистрации. Следующий код является связанной частью:
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 или нет из служб, но я не смог увидеть эту службу. Эта ошибка связана с этим сервисом?
Заранее спасибо.
2 ответа
Спасибо за вашу помощь. Я решил эту проблему. Я изменил свой код как следующий:
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;
sc.EnableSsl = true;
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>";
mail.Body += "</body></html>";
sc.DeliveryMethod = SmtpDeliveryMethod.Network;
sc.Send(mail);
MESAJ(true, "Sending mail is successful");
}
catch (Exception)
{
MESAJ(true, "Sending mail is unsuccessful!");
}
и тогда я установил свой web.config следующим образом:
<mailSettings>
<smtp deliveryMethod="Network"
from="admin@gmail.com">
<network defaultCredentials="false" host="smtp.gmail.com" port="587"
userName="admin@gmail.com" password="password" />
</smtp>
</mailSettings>
это работает..:)
Почему бы не использовать GMAIL в качестве SMTP-сервера, поскольку вы определяете учетную запись GMAIL, определяя хост как "smtp.gmail.com" и порт в 587?
Конкретные подробности здесь: http://support.google.com/mail/bin/answer.py?hl=en&answer=13287