2014-02-06 3 views
1

Как говорится в заголовке, какие порты имеют «System :: Net :: Mail :: SmtpClient», если «SmtpClient :: EnableSsl» установлен в true?Какие порты имеют «System.Net.Mail.SmtpClient», если «SmtpClient.EnableSsl» установлен в true?

documentation on the EnableSsl property говорит, что порт по умолчанию для альтернативного метода подключения - 465, но не упоминает, что используется для типа подключения. поддерживает.

Редактировать - Если это имеет значение, я подключаюсь к Gmail в этом случае, но общие ответы будут приветствоваться.

ответ

0

Быстрый тест с Wireshark предположил, что ответ порта 25 по умолчанию

Клиент использует STARTTLS повторно использовать первоначально незашифрованную ссылку впоследствии отправлять зашифрованные данные.

+0

У меня есть аналогичный вопрос кто-нибудь может помочь мне http://stackoverflow.com/questions/25543233/unable-to-send-the-mailmessage-in-asp-net – Prathyush

0

В дополнение к порту 25 порт 587 является общим портом для клиентов SMTP и работает с SSL. Вы можете найти this answer полезным.

Редактировать - Если вы пытаетесь подключиться к Gmail, см here и here.

+0

Но, видимо, не клиентом, о котором я упомянул в своем вопросе. Или есть шанс, что он может использовать любой из этих портов при определенных обстоятельствах? –

+0

Я использую 'System.Net.Mail.SmtpClient' в своем производственном коде для отправки почты через наш сервер Microsoft Exchange на порт 587, и это определенно работает, SSL и все. Я также использовал его для отправки через Gmail (см. [Здесь] (http://stackoverflow.com/questions/32260/sending-email-in-net-through-gmail)).Если вы не можете подключиться, возможно, ваш SMTP-сервер не поддерживает этот порт, или он может быть заблокирован каким-либо брандмауэром. –

+0

Вы явно устанавливаете этот порт? Я использую значение по умолчанию, поэтому, возможно, это разница? –

6

Для отправки почты в Gmail с помощью системы :: Net :: Почта :: SmtpClient и SSL, вы должны использовать порт 587, как описано в GMail API.

Оба порта 25 и 587 доступны на GMail, но Port 587 will require a SMTP authentication before sending a mail, а порт 25 - нет. Учитывая, что порт 25 не требует аутентификации отправителя, GMail будет более агрессивно фильтровать соединения из ip-адресов, которые не являются надлежащими почтовыми серверами, чтобы уменьшить спам.

GMail API также позволяет использовать порт 465, но вы не можете использовать его с помощью System :: Net :: Mail :: SmtpClient, as documented by Microsoft. Порт 465 предназначен для SMTP через SSL: сначала установите SSL-соединение, затем выполните транзакцию SMTP. С портами 25 и 587 сначала открывается незашифрованный сеанс SMTP, прежде чем переключиться на SSL с помощью STARTTLS и завершить транзакцию SMTP. Последний - это метод, реализованный клиентом SMTP .Net.

+0

Так что порт 587 предпочтительнее, но порт 25 также будет работать? Что вы имеете в виду, когда говорите «25 обычно доступно»? –

+0

Плохо, порты 25 и 587 открыты на GMail. Я имел в виду, что порт 25 всегда доступен на почтовом сервере 587 не всегда. –

0

SMTP over SSL не реализован в SMTPClient .NET Framework.

Вы должны использовать порт: 587.

Способ альтернативного соединения, где SSL устанавливается сеанс фронта, прежде чем все команды протокола посылается. Этот метод соединения иногда называют SMTP/SSL, SMTP через SSL или SMTPS и по умолчанию использует порт 465. Этот альтернативный метод подключения с использованием SSL в настоящее время не поддерживается.

MSDN SMTPClient doc