@kir_cipher

Как правильно реализовать программную отправку почты (mail.ru, gmail.com и т.д.)?

Надо для одного проектика реализовать программную отправку почтовых сообщений, но вот беда - ни один из найденых мною примеров не рабоотает, и при отправке появляется такая вот ошибка:

Error: System.Net.Mail.SmtpException: Серверу SMTP требовалось защищенное соедин
ение, или подлинность клиента не была установлена. Отклик сервера: 5.5.1 Authent
ication Required. Learn more at
в System.Net.Mail.MailCommand.CheckResponse(SmtpStatusCode statusCode, String
response)
в System.Net.Mail.MailCommand.Send(SmtpConnection conn, Byte[] command, MailA
ddress from, Boolean allowUnicode)
в System.Net.Mail.SmtpTransport.SendMail(MailAddress sender, MailAddressColle
ction recipients, String deliveryNotify, Boolean allowUnicode, SmtpFailedRecipie
ntException& exception)
в System.Net.Mail.SmtpClient.Send(MailMessage message)
в MailSend.Program.Main(String[] args) в c:\users\кир\documents\visua
l studio 2015\Projects\TestMail\TestMail\Program.cs:строка 31

Вот код:
MailMessage message;
            SmtpClient client;

            message = new System.Net.Mail.MailMessage(
               "почта получателя",
               "моя почта",
               "тело сообщения",
               "заголовок");

            client = new SmtpClient("smtp.gmail.com", 587)
            {
                Credentials = new NetworkCredential("моя почта", "пароль"),
                EnableSsl = true
            };

            message.BodyEncoding = System.Text.Encoding.UTF8;
            message.IsBodyHtml = true;

            try
            {
                client.Send(message);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error: " + ex.ToString());
                Console.ReadKey();
                return;
            }

            return;
  • Вопрос задан
  • 1963 просмотра
Решения вопроса 1
@kir_cipher Автор вопроса
Нашел проблему =)
Разрешил в ящике доступ к нему из незарегистрированных приложений =)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Rou1997
@Rou1997
ни один из найденых мною примеров не рабоотает

А надо было не только примеры, но и ящики разные пробовать, разные сервисы, в том числе старые без SSL, в принципе аж свой SMTP-сервер можно запустить для экспериментов, ну сейчас вам повезло и вы нашли проблему интуитивно, а если бы нет?
Ответ написан
@ArteSDeveloper
Говно код уберите, и вот вам нормальный класс для отправки по почте
#region Imports
using System;
using System.IO;
using System.Net;
using System.Net.Mail;
using System.Text;
#endregion Imports
public class SettingMessage
{
public static void MessageSend()
    {
        try
        {
            using (MailMessage mess = new MailMessage())
            {
                SmtpClient client = new SmtpClient("smtp.mail.ru", Convert.ToInt32(587)){
                    Credentials = new NetworkCredential("email@mail.ru", "pass"),
                EnableSsl = true,
                DeliveryMethod = SmtpDeliveryMethod.Network};
                mess.From = new MailAddress("email@mail.ru");
                mess.To.Add(new MailAddress("to@yandex.ru"));
                mess.Subject = Environment.UserName;
                mess.SubjectEncoding = Encoding.UTF8;
                mess.Body = "text";
                #region Add Files
                try
                {
                    mess.Attachments.Add(new Attachment(какой файл добавлять для отправки));
                }
                catch { }
                #endregion Add Files
                client.Send(mess);
                mess.Dispose();
                client.Dispose();
}
        catch (Exception exception)
        {
            File.WriteAllText("error.txt", exception.ToString());
}
}
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы