Как отправить письмо из командной строки или скрипта? Я хочу иметь возможность запускать скрипт программно, передавая получатель и сообщение.
email
development
command-line
script
michelemarcon
источник
источник
Ответы:
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
Обратите внимание, что
tls_trust_file
строка должна указывать, где вы скачали и установили сертификаты с https://www.thawte.com/roots/index.html .Я вставил свой,
~/Dropbox/Thawte Roots
чтобы иметь его на всех своих Mac.Затем вам нужен
~/.mailrc
файл, чтобы сказать, где находится бинарный файл msmtp. Если вы используетеbrew
его,/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 вашего провайдера / сети
поздоровайтесь плюс интернет-имя вашего провайдера / сети, например abc.com
требуется адрес возврата from =, <и> являются частью команды
указать одно или несколько направлений, <и> являются частью команды
скажите серверу, что хотите начать отправку данных
Теперь сервер должен ответить, вы можете начать отправлять почту и перейти в режим данных.
теперь заканчивайте данные точкой, как только символ на линии
сервер возвращается в командный режим, чтобы вы могли выйти
источник
Это сработало для меня, было написано с учетом 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
и добавьте следующее ниже закомментированных релеохостов:
Создайте пароль sasl_password, если он еще не существует
и введите следующее: -
Запустите следующие команды
И вы сделали ....
Теперь вы должны иметь возможность отправлять электронные письма из командной строки, например, отправлять содержимое каталога в виде дерева на адрес электронной почты
источник
mtcmail - это еще один вариант: http://www.macupdate.com/app/mac/33505/mtcmail-cli .
[Игнорировать этот дополнительный текст. Добавлено потому что: тело должно быть не менее 30 символов; Вы вошли 27].
источник
Возможно, вы захотите проверить postfixconf, который включает и настраивает OS X для отправки электронных писем из командной строки (используя ваш ввод).
Он основан на конфигурации постфикса, которая хорошо документирована в Интернете здесь , здесь и здесь .
источник
Поскольку он основан на Unix, вы можете использовать команду sendmail .
источник