Не отправляет почту - C#

Узнай цену своей работы

Формулировка задачи:

Стоит такая задача: по завершении работы программы надо отправить письмо с логами на указанный адрес. Я создал 2 тестовых адреса на яндексе и мейле: removed@mail.ru и removed@mail.ru пароль на них один и тот же: Qwerty95. вот собственно код
using System.Net;
using System.Net.Mail;
 
namespace ConsoleApplication2
{
    internal class Program
    {
        /// 
        private static void Main(string[] args)
        {
            string mailFrom = "removed@mail.ru";
            string mailTo = "removed@mail.ru";
            string comment = "12345";
            string login = "tesla712";
            string password = "Qwerty95";
            string subject = "Отчёт за  ";
            MailMessage msg = new MailMessage(mailFrom, mailTo, subject, comment);
            //msg.Attachments.Add(new Attachment(new MemoryStream(ExcelHelper.GetReport(dateReportStart, dateReportEnd)), "отчёт.xlsx"));
 
            SmtpClient SMTP = new SmtpClient("smtp.yandex.ru", 465);
            
            SMTP.EnableSsl = true;
            SMTP.Credentials = new NetworkCredential(login, password);
 
            SMTP.Send(msg);
        }
    }
}
Но при запуске висит окно консоли, а потом пишет: Время ожидания операции истекло Подскажите в чем проблема

Решение задачи: «Не отправляет почту»

textual
Листинг программы
bool SendMessage(string strName, string strLog, string strText, string strPass, string outMail, string strSubject)
        {
            try
            {
                // обнулим на всяк случай
                string smtp = "";
                int port = 0;
 
                // здесь не уверен на счет портов
                // может (скорее всего) они неправильны, но если что 
                // это все легко гуглится ;) парвильный только gmail.com
                var mailCoding = new Dictionary<string, int>
                {
                    {"gmail.com", 587},
                    {"yandex.ru", 225},
                    {"mail.ru", 235},
                    {"list.ru", 254},
                    {"inbox.ru", 215},
                    {"bk.ru", 255}
                };
 
                // поиск нужного порта и smtp при отправке
                foreach (var kvp in mailCoding.Where(kvp => strLog.IndexOf(kvp.Key, StringComparison.Ordinal) > -1))
                {
                    smtp = "smtp." + kvp.Key;
                    port = kvp.Value;
                }
 
                using (var mailMessage = new MailMessage(strName + " <" + strLog + ">", outMail))
                {
                    mailMessage.Subject = strSubject; // тема письма
                    mailMessage.Body = strText; // письмо
                    mailMessage.IsBodyHtml = true; // без html, но можно включить
                    using (var sc = new SmtpClient(smtp, port))
                    {
                        sc.EnableSsl = true;
                        sc.DeliveryMethod = SmtpDeliveryMethod.Network;
                        sc.UseDefaultCredentials = false;
                        sc.Credentials = new NetworkCredential(strLog, strPass);
                        sc.Send(mailMessage);
                    }
                }
                return true;
            }
            catch 
            {
                return false;
            }
        }

ИИ поможет Вам:


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

Оцени полезность:

7   голосов , оценка 4.571 из 5