2016-02-11 2 views
0

Я хочу проверить, поддерживает ли почтовый сервер шифрование TLS или не использует javamail.Как проверить, поддерживает ли почтовый сервер TLS или нет

Я могу проверить через терминал в ОС Linux.

>> dig +short gmail.com mx 
20 alt2.gmail-smtp-in.l.google.com. 
10 alt1.gmail-smtp-in.l.google.com. 
5 gmail-smtp-in.l.google.com. 
40 alt4.gmail-smtp-in.l.google.com. 
30 alt3.gmail-smtp-in.l.google.com. 


>> telnet gmail-smtp-in.l.google.com 25 
220 mx.google.com ESMTP c90si10657664pfd.233 - gsmtp 
>>ehlo gmail.com 
250-mx.google.com at your service, 
250-SIZE 35882577 
250-8BITMIME 
250-STARTTLS 
250-ENHANCEDSTATUSCODES 
250-PIPELINING 
250 SMTPUTF8 

250 STARTTLS, то этот почтовый сервер настроен на поддержку использования TLS.

Точно так же, как мы можем это сделать с помощью javamail программно?

Пожалуйста, помогите.

+0

Просто попробовать и посмотреть. Невозможно предсказать будущее. – EJP

ответ

0

Вам действительно нужно просто «да, сервер поддерживает это» или «нет, это не поддерживает»? Или вы должны отправить электронное письмо и хотите отправить его, только если вы можете сделать это безопасно?

Если это первый, вы можете просто сделать то, что делает telnet, и не беспокоить использование javamail.

Если позднее вы можете настроить javamail для отказа, если сервер не поддерживает TLS. Для получения более подробной информации см. An SMTP protocol provider for the JavaMail API. Свойство 'mail.smtp.starttls.required' - это то, что вам нужно.

+0

Я хочу знать, что сервер поддерживает TLS или нет. Не нужно отправлять почту. – Roshan

+0

Что вы тогда сделаете с этой информацией? Если сервер не поддерживает его, что вы будете делать? Если сервер действительно поддерживает его, что вы будете делать? Вы никогда не намереваетесь отправлять почту с помощью этого сервера? –

+0

@BillShannon Если пользователь отправляет письмо получателю, скажите [email protected] Затем я буду смотреть входящий SMTP-сервер. Abc.com поддерживает TLS или нет, чтобы показать информацию пользователю, поскольку почтовый сервер получателя не использует шифрование TLS. Его до пользователя решить, нужно ли ему отправлять или нет информацию (может быть конфиденциальной информацией). – Roshan

0

Каким образом java «да, сервер поддерживает это» Проверка на tls выглядит так?

Единственный способ, которым я действительно вижу, - сделать поиск dns (например, через javax.naming.directory.InitialDirContext).

А затем подключить через Telnet (например, через апач телнет клиент) и разобрать

Смежные вопросы