Ошибка: сервер не поддерживает безопасные соединения - PullRequest
0 голосов
/ 30 января 2009

Хорошо, я уже более года использую следующий скрипт для отправки электронной почты (через gmail) с моего хоста, и он работал нормально ( Settings.Get () просто возвращает строки ):

public class Email : SmtpClient
{
    public MailMessage Message { get; private set; }

    public Email(string to, string from, string subject, string body) : base(Settings.Get("smtp"), 25)
    {
        this.EnableSsl = Convert.ToBoolean(Settings.Get("ssl"));
        if(this.EnableSsl)
            this.Credentials = new System.Net.NetworkCredential(Settings.Get("gm"), Settings.Get("gmp"));
        this.Message = new MailMessage(from, to, subject, body);
    }

    public void Send()
    {
        try { this.Send(Message); }
        catch (Exception ex) { throw ex; }
    }
}

Но со вчерашнего дня я получаю эту ошибку:

Ошибка: сервер не поддерживает безопасные соединения.

Теперь, конечно, мой хозяин думает, что это не их вина, НО Я НИЧЕГО НЕ ИЗМЕНИЛ. Кроме того, он все еще отлично работает на моих локальных и тестовых машинах. Любая идея, что может быть причиной этого, чтобы я мог сказать им, чтобы это исправить?

Спасибо ... это сводит меня с ума!

Ответы [ 5 ]

5 голосов
/ 30 января 2009

Какой SMTP-сервер и порт вы используете? Вам нужно будет использовать порт 465 или 587, если вы подключаетесь напрямую к smtp.gmail.com для отправки ssl почты.

Похоже, вы используете порт 25, вы уверены, что ваш Settings.Get("ssl") возвращает false?

Подробнее читайте здесь.

0 голосов
/ 09 августа 2018

Изменение:

 SmtpServer.EnableSsl = true;

Кому:

SmtpServer.EnableSsl = false;

Это решит проблему.

0 голосов
/ 25 декабря 2013
SmtpServer.Port = 587;
SmtpServer.UseDefaultCredentials = false;
SmtpServer.Credentials = new System.Net.NetworkCredential("xx@xx.com", "password");
SmtpServer.EnableSsl = true;
0 голосов
/ 06 ноября 2009

Указание порта для использования 587 также решило эту проблему для меня -

Ошибка: сервер не поддерживает безопасные соединения.

Компания, которую я для работы, создала службу Windows, которая делает некоторые вещи, а затем отправляет электронное письмо из Gmail. В начале он отправил письмо просто отлично, без проблем. После установки службы на компьютере с Vista, мы заметили, что она не будет отправлять электронную почту. Затем то же самое, когда мы установили его на Windows 2008 Server. Мы даже начали замечать это на небольшом количестве машин XP. Как только мы изменили порт на 587, он снова начал нормально работать и отправлять электронные письма.

Вот пример кода, который работал на всех машинах, которые мы пробовали (XP, Vista, Server 2008).

        Dim client As New Net.Mail.SmtpClient("smtp.gmail.com")
        client.Port = 587
        client.EnableSsl = True
        client.UseDefaultCredentials = False
        client.Credentials = loginInfo
        client.Send(mm)
0 голосов
/ 30 января 2009

проверьте ваш журнал событий, возможно, рукопожатие между вашим компьютером и сервером не работает. Или сертификат не загружается, или он может содержать ошибки, которые могут быть чем-то странным, поступающим из gmail

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...