Я чувствую, что моя проблема очень проста, но я пытался довольно долго и не решил ее. Вы опытные серверные парни, вероятно, будете смеяться над этим, но я, наконец, в тот момент, когда мне нужна помощь, или я никогда никуда не доберусь.
У меня есть маленький ящик с 12.04 LTS, и я хотел написать некоторые проверки статуса, чтобы сервер отправил мне электронное письмо и запланировал это с помощью cron.
Мне в основном нужен почтовый клиент командной строки, который я могу настроить так же легко, как Thunderbird, отправлять через мой существующий SMTP через командную строку. Что-то, что может быть легко добавлено в мои скрипты bash.
У меня уже есть удаленный хост, обрабатывающий нашу электронную почту, SMTP, MTA, весь этот мусор. Я не особо хочу настраивать ретрансляцию только для того, чтобы отправлять электронную почту, когда у меня есть такая, которую все остальные в компании уже используют. Я пытался, но есть слишком много аспектов, которые я не понимаю, И я не понимаю, почему я должен установить что-то локальное, когда мы уже платим за удаленный хост, чтобы делать эти вещи.
Если мне абсолютно необходимо настроить sendmail или postfix, пусть будет так, но я бы оценил простую альтернативу. На данный момент я открыт практически для всего.
Если Вы подразумеваете отправку электронного письма через сторонний сервер SMTP (обеспеченный ISP, например), то можно установить ssmtp
, который является общедоступной заменой для Postfix/Sendmail, но специализированный к той точной задаче отправки почты через удаленный SMTP и таким образом намного легче настроить. Затем можно послать электронное письмо с mailx
команда, например:
echo "Mail." | mailx -s "Subject" recipient@somewhere.org
Править: Электронная почта является очень сложным бизнесом... Некоторые вещи иметь в виду:
Обратите внимание, что команда выше не указывает адрес отправителя (т.е. адрес, который получатель будет видеть в Поле "От" его почтового клиента). По умолчанию адрес отправителя является Вашим именем для входа в систему на Вашей локальной машине, сопровождаемой @
, сопровождаемый полным именем хоста локальной машины. Например, на моей машине, имя для входа в систему firas
и имя хоста nomo
:
firas@nomo ~ % whoami firas firas@nomo ~ % hostname -f nomo
таким образом, когда я посылаю электронное письмо с вышеупомянутой командой, адрес отправителя будет firas@nomo
, как видно из mail.log
:
firas@nomo ~ % tail -n 3 /var/log/mail.log Jun 9 20:37:46 nomo sSMTP[2203]: Creating SSL connection to host Jun 9 20:37:48 nomo sSMTP[2203]: SSL connection using RSA_AES_128_CBC_SHA1 Jun 9 20:37:50 nomo sSMTP[2203]: Sent mail for firas@nomo (221 2.0.0 esmtp3.es.uci.edu closing connection) uid=1000 username=firas outbytes=364
Подавляющее большинство серверов откажется передавать эту электронную почту (как мера против спама), потому что доменное имя nomo
не допустимый домен. К счастью, существует опция в ssmtp.conf
который позволяет, каждый указывает произвольный домен, который sSMTP
будет использовать при отправке почты. А именно, это rewritedomain
опция, поэтому если у меня есть это в моем ssmtp.conf
:
rewriteDomain=fkraiem.org
затем адрес отправителя будет firas@fkraiem.org
.
Обычно, вышеупомянутое должно быть достаточным (то есть, пока Ваш адрес отправителя имеет допустимый домен, сервер должен передать Вашу почту). Однако некоторые почтовые поставщики дополнительны рьяный, и только разрешат Вам использовать адрес электронной почты, который Вы зарегистрировали в них. Это означает, что в дополнение к тому, чтобы менять доменное имя как выше, Вы, возможно, должны были бы или изменить свое имя для входа в систему на локальной машине, или зарегистрировали бы новый адрес в своем поставщике (если они позволяют его), так, чтобы заключительный адрес соответствовал Вашему юридическому адресу.
Другой способ указать произвольный адрес отправителя состоит в том, чтобы установить fromlineoverride
опция ssmtp.conf
кому: YES
, и затем используйте -a
опция mailx
:
echo "Mail." | mailx -s "Subject" -a 'From: firas@fkraiem.org' firas@fkraiem.org
Это однако нестандартно, и не могло бы работать над Ose кроме Ubuntu (и другие основанные на GNU системы). Можно также использовать другой, более сложные клиенты, такой как mutt
.
Вы рассмотрели sendemail? (sendEmail)
Описание-en: легкий вес, командная строка почтовый клиент SMTP