Как отправить письмо из командной строки или скрипта? Я хочу иметь возможность запускать скрипт программно, передавая получатель и сообщение.
Как отправить письмо из командной строки или скрипта? Я хочу иметь возможность запускать скрипт программно, передавая получатель и сообщение.
Ответы:
mail -s subject someone@example.com
введите ваше сообщение, нажмите, Ctrl+D
чтобы закончить
echo This will be the body of the email | mail -s "This is the Subject" destination@example.com
Мне известны две программы, которые легко позволят вам настроить Mac для отправки электронной почты из командной строки.
Я написал HOWTO для них обоих:
Из двух я предлагаю msmtp
.
Настройка достаточно сложна, поэтому я не уверен, что мне следует повторить все шаги здесь, но я упомяну, что если вы используете Homebrew, вы можете установить msmtp, используя
brew install msmtp --with-macosx-keyring
Тогда все остальное - это просто настройка соответствующих файлов конфигурации.
Первый /usr/local/etc/msmtprc
# Begin msmtprc
# Set default values for all following accounts.
defaults
tls on
logfile ~/.msmtp.log
# A first gmail address
account example@gmail.com
host smtp.gmail.com
port 587
protocol smtp
auth on
from example@gmail.com
user example@gmail.com
tls on
tls_starttls on
# this next line is crucial: you have to point to the correct security certificate for GMail.
# If this doesn't work, check the mstmp documentation
# at http://msmtp.sourceforge.net/documentation.html for help
#
# This next line should all be on one long line:
tls_trust_file /path/to/Thawte Roots/Thawte SSLWeb Server Roots/thawte Premium Server CA/Thawte Premium Server CA.pem
# Set a default account
# You need to set a default account for Mail
account default : example@gmail.com
# end msmtprc
Обратите внимание, что tls_trust_file
строка должна указывать, где вы скачали и установили сертификаты с https://www.thawte.com/roots/index.html .
Я вставил свой, ~/Dropbox/Thawte Roots
чтобы иметь его на всех своих Mac.
Затем вам нужен ~/.mailrc
файл, чтобы сказать, где находится бинарный файл msmtp. Если вы используете brew
его, /usr/local/bin/msmtp
файл будет выглядеть так:
set sendmail="/usr/local/bin/msmtp"
Последний, но важный шаг - убедиться, что ваша цепочка для ключей имеет информацию именно в том формате, в котором ее ожидает msmtp:
Я думаю, что это охватывает большинство деталей. См. Http://www.tuaw.com/2010/05/04/msmtp-a-free-tool-to-send-email-from-terminal/, если хотите узнать больше подробностей.
example@gmail.com
на свой адрес электронной почты Gmail или Google Apps.
~/.msmtprc
Самый простой способ отправки почты - через сеанс telnet с сервером smtp вашего провайдера / сети. После того, как вы связались с сервером и после каждой команды сервер ответит, если он примет команду с чем-то вроде «250 OK», или, если нет, с сообщением об ошибке.
Все подробности можно найти в RFC2821 - Простой протокол пересылки почты, Google для него. Этот базовый способ отлично подходит для проверки того, почему что-то идет не так при отправке почты, но я думаю, что довольно сложно написать полное доказательство.
Сначала получите интерфейс командной строки на вашем компьютере, запустив Terminal. Затем продолжайте выполнять следующие команды, одну за другой.
Откройте сеанс telnet для порта 25 сервера smtp вашего провайдера / сети
telnet name_or_ip_of_smtp_server 25
поздоровайтесь плюс интернет-имя вашего провайдера / сети, например abc.com
EHLO name_of_your_network
требуется адрес возврата from =, <и> являются частью команды
MAIL FROM:<your_email_adress>
указать одно или несколько направлений, <и> являются частью команды
RCPT TO:<destination_email_address>
RCPT TO:<second_destination_email_address>
RCPT TO:<etc_destination_email_address>
скажите серверу, что хотите начать отправку данных
DATA
Теперь сервер должен ответить, вы можете начать отправлять почту и перейти в режим данных.
your data
more data
etc
теперь заканчивайте данные точкой, как только символ на линии
.
сервер возвращается в командный режим, чтобы вы могли выйти
QUIT
Это сработало для меня, было написано с учетом Lion, но работает для Mountain Lion. Кстати, это использует Gmail, так что если вы не ...
Вам не нужно ничего скачивать! (просто настройте учетную запись Gmail)
http://www.anujgakhar.com/2011/12/09/using-macosx-lion-command-line-mail-with-gmail-as-smtp/
Настроить Postfix для Gmail SMTP Редактировать файл /etc/postfix/main.cf
sudo vim /etc/postfix/main.cf
и добавьте следующее ниже закомментированных релеохостов:
relayhost = [smtp.gmail.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_use_tls = yes
smtp_sasl_mechanism_filter = plain
Создайте пароль sasl_password, если он еще не существует
sudo vim /etc/postfix/sasl_passwd
и введите следующее: -
[smtp.gmail.com]:587 username@gmail.com:password
Запустите следующие команды
sudo chmod 600 /etc/postfix/sasl_passwd
sudo postmap /etc/postfix/sasl_passwd
sudo launchctl stop org.postfix.master
sudo launchctl start org.postfix.master
И вы сделали ....
Теперь вы должны иметь возможность отправлять электронные письма из командной строки, например, отправлять содержимое каталога в виде дерева на адрес электронной почты
tree /var/www/somefolder | mail -s "contents" your@yourdomain.com
mtcmail - это еще один вариант: http://www.macupdate.com/app/mac/33505/mtcmail-cli .
[Игнорировать этот дополнительный текст. Добавлено потому что: тело должно быть не менее 30 символов; Вы вошли 27].
Поскольку он основан на Unix, вы можете использовать команду sendmail .