Как отправить подтверждение по электронной почте в 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

Другие вопросы по тегам