K
K
kir_cipher2016-09-20 19:38:39
Email
kir_cipher, 2016-09-20 19:38:39

How to correctly implement programmatic mail sending (mail.ru, gmail.com, etc.)?

Надо для одного проектика реализовать программную отправку почтовых сообщений, но вот беда - ни один из найденых мною примеров не рабоотает, и при отправке появляется такая вот ошибка:
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;

Answer the question

In order to leave comments, you need to log in

3 answer(s)
K
kir_cipher, 2016-09-20
@kir_cipher

Нашел проблему =)
Разрешил в ящике доступ к нему из незарегистрированных приложений =)

R
Rou1997, 2016-09-20
@Rou1997

ни один из найденых мною примеров не рабоотает

And it was necessary not only to try examples, but also to try different boxes, different services, including old ones without SSL, in principle, you can start your own SMTP server for experiments, well, now you are lucky and you found the problem intuitively, but what if not?

A
ArteSDeveloper, 2016-09-20
@ArteSDeveloper

Remove the shitty code, and here is a normal class for you to send by mail

#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 protected]", "pass"),
                EnableSsl = true,
                DeliveryMethod = SmtpDeliveryMethod.Network};
                mess.From = new MailAddress("[email protected]");
                mess.To.Add(new MailAddress("[email protected]"));
                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());
}
}
}

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question