Отправка электронного письма через Gmail в.NET [дубликат]

8
задан Community 23 May 2017 в 12:01
поделиться

5 ответов

Может быть, брандмауэр или что-то в этом роде. Я считаю, что лучший способ попробовать это - просто подключиться к серверу вручную.

Просто откройте командную строку и напишите:
telnet your.mail.server 25

Обычно это дает ответ, аналогичный «220 your.mail.server ESMTP».

Если вы используете Vista или Win7, вам, возможно, придется сначала включить встроенный клиент Telnet (перейдите в «Программы и компоненты», выберите «Включить или выключить функции Windows» и просто выберите клиент Telnet)

0
ответ дан 5 December 2019 в 20:14
поделиться

Это ваш порт ... Gmail требует порт 587.

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

РЕДАКТИРОВАТЬ:

   private static void SendEmailMessageGmail(System.Net.Mail.MailMessage message)
    {
        message.IsBodyHtml = true;
        message.BodyEncoding = Encoding.UTF8;
        System.Net.NetworkCredential cred = new System.Net.NetworkCredential(EmailUsername, EmailPassword);
        SmtpClient smtp = new SmtpClient("smtp.gmail.com");
        smtp.UseDefaultCredentials = false;
        smtp.EnableSsl = true;
        smtp.Credentials = cred;
        smtp.Port = 587;
        smtp.Send(message);
    }

РЕДАКТИРОВАТЬ: Добавьте это в свой код: email_client.UseDefaultCredentials = false;

5
ответ дан 5 December 2019 в 20:14
поделиться

Не уверен, что это будет полезно, но вы проверили, что ваш IP-адрес не блокирует отправку электронных писем с вашего IP?? Когда-то у меня была похожая проблема, я закончил тем, что выдергивал волосы все выходные за нее.

Таким образом, стоит проверить, чтобы устранить это. Удачи.

1
ответ дан 5 December 2019 в 20:14
поделиться

Попробуйте ввести полный адрес электронной почты в NetworkCredential username

0
ответ дан 5 December 2019 в 20:14
поделиться

Поскольку вы ссылаетесь на System.Web, я предполагаю, что это веб-приложение, хотя я не совсем понял это из вашего описания. Если это действительно веб-приложение, убедитесь, что в вашем файле web.config есть следующая запись:

  <system.net>
    <mailSettings>
      <smtp>
        <network host="smtp.gmail.com" port="465" userName="<UID>" password="<PW>"/>
      </smtp>
    </mailSettings>
  </system.net>

Это предотвратит необходимость указывать эту информацию в классе email_log_files

2
ответ дан 5 December 2019 в 20:14
поделиться
Другие вопросы по тегам:

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