Member 13132739 Ответов: 1

Я получил эту ошибку при отправке почты через gmail (была предпринята попытка получить доступ к сокету способом, запрещенным его разрешениями доступа 74.125.24.109:587)


Это мой код

MailMessage msgMail = new MailMessage();

MailMessage myMessage = new MailMessage();
myMessage.From = new MailAddress("<removed>@gmail.com", "<removed>@gmail.com");
myMessage.To.Add("<removed>6@yahoo.com");
myMessage.Subject = "Hello";
myMessage.IsBodyHtml = true;

myMessage.Body = "Message Body";


SmtpClient mySmtpClient = new SmtpClient();
System.Net.NetworkCredential myCredential = new System.Net.NetworkCredential("<removed>@gmail.com", "<removed>");
mySmtpClient.Host = "smtp.gmail.com";
mySmtpClient.Port = 587;
mySmtpClient.UseDefaultCredentials = true;
mySmtpClient.EnableSsl = true;
mySmtpClient.Credentials = myCredential;
mySmtpClient.ServicePoint.MaxIdleTime = 1;

mySmtpClient.Send(myMessage);
myMessage.Dispose();


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

использование учетной записи gmail
я следую этому пункту
Step 1: Check that IMAP is turned on
On your computer, open Gmail.
In the top right, click Settings Settings.
Click Settings.
Click the Forwarding and POP/IMAP tab.
In the "IMAP Access" section, select Enable IMAP.
Click Save Changes.
Step 2: Change your IMAP settings in your email client
Use the table below to update your client with the correct information. For help updating your settings, search your email client's Help Center for instructions on setting up IMAP.

Incoming Mail (IMAP) Server	
imap.gmail.com

Requires SSL: Yes

Port: 993

Outgoing Mail (SMTP) Server	
smtp.gmail.com

Requires SSL: Yes

Requires TLS: Yes (if available)

Requires Authentication: Yes

Port for SSL: 465

Port for TLS/STARTTLS: 587

Full Name or Display Name	Your name
Account Name, User name, or Email address	Your full email address
Password	Your Gmail password

Afzaal Ahmad Zeeshan

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

Если кто-то хочет вам помочь, он может легко использовать свои собственные учетные записи для тестирования сервиса.

1 Ответов

Рейтинг:
0

Afzaal Ahmad Zeeshan

Одна вещь, которую я нахожу проблематичной, - это почему вы используете UseDefaultCredentials а потом в то же время еще и передавать свои собственные верительные грамоты? Используется гораздо больше избыточных вызовов, что делает почтовые серверы подозрительными — SMTP-провайдеры и их законы более строгие, чем иммиграционные законы большинства стран. :смеяться:

В большинстве случаев я оставляю все по умолчанию, попробуйте следующий код,

// 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>");

   // 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);
}

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