Як надіслати електронний лист із командного рядка чи сценарію? Я хочу мати можливість запускати скрипт програмно, передаючи приймач і повідомлення.
Як надіслати електронний лист із командного рядка чи сценарію? Я хочу мати можливість запускати скрипт програмно, передаючи приймач і повідомлення.
Відповіді:
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 для надсилання електронної пошти з командного рядка.
Я написав HOWTOs для обох:
Пропоную два з них 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
щоб я могла мати її на всіх своїх Маках.
Тоді вам потрібен ~/.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 ОК", чи ні, з повідомленням про помилку.
Всі деталі можна знайти в RFC2821 - Простий протокол передачі пошти, Google для нього. Цей основний спосіб відмінно підходить для тестування того, чому щось не вдається відправити пошту, але, на мою думку, це досить складно сценарій його повного підтвердження.
Спочатку знайдіть на комп’ютері інтерфейс командного рядка, запустивши Terminal. Потім продовжуйте виконувати наступні команди, одна за одною.
Відкрийте сеанс телнету для порту 25 smtp-сервера вашого провайдера / мережі
telnet name_or_ip_of_smtp_server 25
привітайтеся плюс інтернет-ім’я вашого провайдера / мережі, як-от abc.com
EHLO name_of_your_network
a з = повернення потрібне, <і> є частиною команди
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
Це працювало для мене, це було написано на увазі Лева, але працює для Гірського Лева. До речі, для цього використовується 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 .