Member 12716681 Ответов: 1

При отправке почты через смпт.я получил ошибку.системы.исключение: сбой при отправке электронной почты.ли один помочь.спасибо


protected void Page_Load(отправитель объекта, EventArgs e)
{
пробовать
{
Получить помощь Сообщение = Новый получить помощь();
сообщение.To. Add(new MailAddress(receiverMailId));
сообщение.From = новый почтовый адрес("anwesh@gmail.com");
сообщение.Subject = " информация от Tata";
сообщение.Body = " Уважаемый Пользователь,

"+Сообщение + "

С уважением,

привет.";
сообщение.Приоритет = Система.Нет.Почте.MailPriority.Обычный;

Servicepointmanager и.ServerCertificateValidationCallback = новая система.Нет.Безопасности.RemoteCertificateValidationCallback(customCertValidation);
SmtpClient smtp = новый SmtpClient();
протокол SMTP.Порт = 587;
протокол SMTP.Хост = "smtp.gmail.com";
протокол SMTP.DeliveryMethod = SmtpDeliveryMethod.Сеть;
протокол SMTP.UseDefaultCredentials = false;
протокол SMTP.Учетные данные = новый система.Нет.А networkcredential("example@gmail.com", "в<пароль&ГТ;");
протокол SMTP.Тайм-аут = 20000;
smtp. EnableSsl = true;
smtp. Send(сообщение);
Ответ.Написать ("почта отправлена успешно");
}
поймать (исключение бывший)
{
выбросить новое исключение(например, сообщение);
}
}

Что я уже пробовал:

protected void Page_Load(отправитель объекта, EventArgs e)
{
пробовать
{
Получить помощь Сообщение = Новый получить помощь();
сообщение.To. Add(new MailAddress(receiverMailId));
сообщение.From = новый почтовый адрес("anwesh@gmail.com");
сообщение.Subject = " информация от Tata";
сообщение.Body = " Уважаемый Пользователь,

"+Сообщение + "

С уважением,

привет.";
сообщение.Приоритет = Система.Нет.Почте.MailPriority.Обычный;

Servicepointmanager и.ServerCertificateValidationCallback = новая система.Нет.Безопасности.RemoteCertificateValidationCallback(customCertValidation);
SmtpClient smtp = новый SmtpClient();
протокол SMTP.Порт = 587;
протокол SMTP.Хост = "smtp.gmail.com";
протокол SMTP.DeliveryMethod = SmtpDeliveryMethod.Сеть;
протокол SMTP.UseDefaultCredentials = false;
smtp. Credentials = new System.Net. NetworkCredential("anwesh@gmail.com", " Pema@123");
протокол SMTP.Тайм-аут = 20000;
smtp. EnableSsl = true;
smtp. Send(сообщение);
Ответ.Написать ("почта отправлена успешно");
}
поймать (исключение бывший)
{
выбросить новое исключение(например, сообщение);
}
}

F-ES Sitecore

Это очень часто задаваемый вопрос (второй раз за этот час сегодня), пожалуйста, проведите фундаментальное исследование, прежде чем задавать такой вопрос, как использование google. Если вы загуглите, как отправлять электронную почту через gmail, вы найдете много примеров кода и много дискуссий о проблемах, которые вы найдете, так как многие из них не связаны с кодом.

Afzaal Ahmad Zeeshan

Никогда не включайте комбинации электронной почты и паролей в свои сообщения. Спамеры и хакеры всегда ищут такой материал, чтобы раздражать и раздражать вас. В таких случаях просто используйте случайный или псевдотекст, и тестировщики будут использовать свои собственные учетные данные для тестирования исходного кода. Это для вашей же безопасности.

1 Ответов

Рейтинг:
2

Afzaal Ahmad Zeeshan

Это самая основная ошибка, с которой новичкам приходится сталкиваться при попытке отправить электронное письмо. Наиболее распространенными проблемами являются:

1. Имя хоста или протокол неверны — что, похоже, не является проблемой в вашем коде.
2. Ошибка имя пользователя пароль. Что должно быть проверено с вашей стороны.

Перепроверьте их и попробуйте еще раз. В принципе, вы должны попробовать использовать рабочий образец кода, который был протестирован несколько раз. Например, попробуйте следующий код, который я написал,

// You should use a using statement
using (SmtpClient client = new SmtpClient("<smtp-server-address>", 25))
{
   // Configure the client
   client.EnableSsl = true;
   client.Credentials = new NetworkCredential("<username>", "<password>");
   // client.UseDefaultCredentials = true;

   // A client has been created, now you need to create a MailMessage object
   MailMessage message = new MailMessage(
                            "from@example.com", // From field
                            "to@example.com", // Recipient field
                            "Hello", // Subject of the email message
                            "World!" // Email message body
                         );

   // Send the message
   client.Send(message);

   /* 
    * Since I was using Console app, that is why I am able to use the Console
    * object, your framework would have different ones. 
    * There is actually no need for these following lines, you can ignore them
    * if you want to. SMTP protocol would still send the email of yours. */
    
   // Print a notification message
   Console.WriteLine("Email has been sent.");
   // Just for the sake of pausing the application
   Console.Read();
}

Для получения дополнительной информации я написал статью, посвященную основам отправки электронных писем и тому, как справиться с некоторыми ошибками в этом процессе, читайте ее здесь, Отправка электронных писем через .NET framework и общие проблемы-использование кода C# [^]