Я пытаюсь отправить электронную почту с сервера Ubuntu (14.04.2 LTS) через командную строку, а затем внутри небольших сценариев. Для этого я хочу использовать ssmtp с внешним почтовым сервером внутри сети, который не требует никакой аутентификации. Это означает, что на другом хосте есть smtp-сервер (external-server.com:25
), который я хочу использовать для отправки почты. Поскольку мой хост и smtp-сервер находятся в одной сети, я могу получить доступ к smtp-серверу без какой-либо аутентификации.
Поэтому я настроил ssmtp для использования этого внешнего сервера, вот мой ssmtp.conf:
#
# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
root=devnull@external-server.com
# The place where the mail goes. The actual machine name is required no
# MX records are consulted. Commonly mailhosts are named mail.domain.com
mailhub=external-server.com:25
# Where will the mail seem to come from?
rewriteDomain=external-server.com
# The full hostname
#hostname=
# Are users allowed to set their own From: address?
# YES - Allow the user to specify their own From: address
# NO - Use the system generated From: address
#FromLineOverride=YES
#Settings for sending logfiles as devnull@external-server.com
AuthUser=devnull@external-server.com
AuthPass=
UseTLS=YES
UseSTARTTLS=YES
Теперь я могу позвонить ssmtp mymail@gmx.de
и напечатать сообщение, подобное этому:
To: mymail@gmx.de
From: devnull@external-server.com
Subject: Test
Lorem ipsum ...
Если я сейчас нажму Ctrl kbd> + D kbd>, просто ничего не произойдет, я могу буквально ждать минуты. Также Ctrl kbd> + C kbd>, похоже, игнорируется. Просто Ctrl kbd> + Z kbd> работает.
Журнал mail.err
пуст и mail.log
просто утверждает
Mar 23 14:53:50 ubuntu-server sSMTP[2810]: Creating SSL connection to host
Я также проверил, что соединение запускается с использованием tcpdump. Поэтому единственная проблема, на которую я могу указать, заключается в том, что Ctrl kbd> + D kbd>, похоже, игнорируется. Кто-нибудь знает эту проблему или даже лучшее решение?
РЕДАКТИРОВАТЬ
На самом деле проблема была в том, что поле AuthUser
не было пустым, и что другие подсети были разрешено использовать smtp-сервер, но не мою подсеть.
Было также очень раскомментировать FromLineOverride = YES, поэтому пользователи могли использовать свои собственные почтовые адреса.
Я ни в коем случае не эксперт по этой теме, однако Ваша конфигурация, кажется, отсутствует:
TLSCert
The file name of an RSA certificate to use for TLS, if required.
TLSKey
The file name of an RSA key to use for TLS, if required.
TLS_CA_File
A file of trusted certificates for validating the server, if required.
TLS_CA_Dir
A directory of trusted certificates for validating the server, if required.
я предположил бы, что они требуются при использовании источника TLS