Member 14512875 Ответов: 1

Я пытаюсь отправить электронное письмо администратору в .NET core, но это вызывает исключение.


'A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond'

SocketException: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond


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

public void EmailtoAdmin()
        {
            var message =  new  MimeMessage();
            message.From.Add(new MailboxAddress("my email"));
            message.To.Add(new MailboxAddress("email"));
            message.Subject = "";
            message.Body = new TextPart("plian")
            {
                Text = "abc"
            };
            using (var client =new SmtpClient())
            {
               // client.Timeout = 600000;
                client.Connect("smtp.gmail.com", 465, false);
                client.Authenticate("email", "pwd");
                client.Send(message);
                client.Disconnect(true);
               
            }
        }

F-ES Sitecore

google "c# send email gmail", это один из самых часто задаваемых вопросов, и все проблемы, с которыми вы столкнетесь, уже хорошо документированы.

Однако мой совет-вообще не отправлять сообщения через gmail, он только в какой-то момент перестанет работать.

Sinisa Hajnal

Я понимаю, что это, вероятно, просто код вопроса, но в целом у вас не должно быть "магических чисел" в коде (в данном случае номер порта)

1 Ответов

Рейтинг:
5

Dominic Burford

Попробовать это

MailMessage mail = new MailMessage();
mail.To.Add(to);
mail.From = new MailAddress(from);
mail.Subject = subject;
mail.Body = body;
mail.IsBodyHtml = true;
SmtpClient smtp = new SmtpClient("smtp.gmail.com",587);
smtp.EnableSsl = true;
smtp.UseDefaultCredentials = false;
smtp.Credentials = new System.Net.NetworkCredential(address, password);
smtp.Send(mail);
Порт установлен на 587 (вместо 465).


Member 14512875

Спасибо,теперь это работает.

Sinisa Hajnal

Вы должны принять это как ответ, чтобы другие могли найти его.

Maciej Los

5ed!