Як надіслати пошту з командного рядка?
Як надіслати пошту з командного рядка?
Відповіді:
Спробуйте встановити клієнт електронної пошти Mutt . Інший варіант - використання emacs з gnus . Інші варіанти також доступні ... IMHO, ви повинні використовувати більше деталей у своїх питаннях або кілька різних відповідей на своє запитання, яке ви отримаєте :-)
Встановити ssmtp :
sudo apt-get install ssmtp
Редагуйте конфігураційний файл ssmtp:
gksu gedit /etc/ssmtp/ssmtp.conf
Додайте наступний текст:
root=username@gmail.com
mailhub=smtp.gmail.com:465
rewriteDomain=gmail.com
AuthUser=username
AuthPass=password
FromLineOverride=YES
UseTLS=YES
Запустіть ssmtp та введіть електронну адресу одержувача:
ssmtp recepient_name@gmail.com
Надайте деталі повідомлення наступним чином:
To: recipient_name@gmail.com
From: username@gmail.com
Subject: Sent from a terminal!
Your content goes here. Lorem ipsum dolor sit amet, consectetur adipisicing.
(Notice the blank space between the subject and the body.)
Натисніть Ctrl+, Dщоб надіслати.
Ви також можете помістити текст у файл і надіслати його наступним чином:
ssmtp recipient_name@gmail.com < filename.txt
Більшу частину часу вам не потрібно буде налаштовувати SMTP-сервер, який ви можете просто використовувати mail
з командного рядка (якщо його ще немає, встановіть разом sudo apt-get install mailutils
). (Або якщо ви перебуваєте на сервері, де налаштовано sendmail тощо)
marco@dagobah:~$ mail -v marco.ceppi.use@gmail.com
Subject: Hello World!
This is an email to myself.
Hope all is well.
.
Cc:
Ви припиняєте повідомлення одним синглом .
в мережі. Саме тоді mail
буде запропоновано Cc:
ввести інформацію (або залишити порожньою), а mail
потім надрукує додаткову інформацію про те, що вона намагається зробити, а також деталізує обробку з'єднань, передачі та отримання даних з поштового сервера.
sudo apt-get install mailutils
встановить SMTP-сервер, який є postfix
, що може бути трохи переваженим для деяких людей.
apt-get install libio-socket-ssl-perl libnet-ssleay-perl sendemail
використання:
sendemail -f fromuser@gmail.com -t touser@domain.com -u subject -m "message" -s smtp.gmail.com:587 -o tls=yes -xu gmailaccount@gmail.com -xp gmailpassword
Якщо ви не хочете вказувати свій пароль в командному рядку (як правило, це не дуже добре), ви можете опустити цей параметр, і sendemail запропонує вам ввести пароль ... і відобразити його на екрані, але принаймні це не буде в історії вашого командного рядка.
sendmail
більшості визначеності дуже зручно. Дякую.
-s smtp.gmail.com:587
.
pass=$(cat my_password); sendemail... -xp $name ...
і, звичайно, якщо ви його запрошуєте програмно, ви можете зробити щось подібне, наприклад: ruby system("sendemail ... -xp #{File.read 'my_password'}...")
також може вийти з ладу Перший раз вам слід надіслати електронний лист до цього облікового запису, який пропонує "ввімкнути менш захищені програми", то він може працювати.
Для надсилання пошти вам потрібен MTA. Для цього використовуйте постфікс:
sudo apt-get install postfix
Щоб надіслати електронний лист:
echo "test message" | mailx -s 'test subject' myemail@mydomain.com
mailutils
коли я ввів це в термінал
mail -s "subjet" -a "attchedfile_name" someone@dest_email.com
або
cat "afile" | mail -s "subject" someone@dest_email.com
sudo apt-get install mailutils
в Ubuntu / Debian або yum install mailx
в CentOS / Redhat
Все пояснюється тут .
hanoo@hp_laptop% nc 127.0.0.1 25
220 hp_laptop.localdomain ESMTP Postfix
EHLO man
250 hp_laptop.localdomain
MAIL FROM: <netcat@postfix.com>
250 2.1.0 Ok
RCPT TO: <target@host.com>
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
This is the body of my mail,
this is the second line...
.
250 2.0.0 Ok: queued as 9C12E7F404
swaks
і ти теж добре із SSL / TLS ;-)
openssl s_client -starttls smtp ...
Якщо ви намагаєтеся надіслати електронну пошту з системи, яка не працює з власним сервером електронної пошти (тобто настільною системою), вам потрібно встановити щось на зразок nullmailer або esmtp , яке пересилає вашу локальну пошту до "справжньої" пошти сервер.
В якості інструментів командного рядка можна встановити mail або mailx (пакунки mailutils, heirloom-mailx або bsd-mailx). Якщо вам потрібні вкладення, спробуйте biabam.
Я ніколи цього не пробував, але є mail
команда, яка може надсилати пошту. Дивіться людині пошту .
Щоб перевірити локальну електронну пошту:
echo message | mail username@localhost
sudo apt-get install sharutils mailutils
uuencode filename filename | mail user@example.com
де filename
те саме: воно означає вхідний файл та віддалений файл.
sudo apt-get install sharutils
заuuencode
Ви можете спробувати це:
mail name@mailserver.com -s "Attached file" <<EOF
Hi
~| uuencode $HOME/filename.txt filename.txt
EOF
Він працює з GNU Mailutils , перегляньте веб-сайт для отримання додаткової інформації.
Виконати :
sudo apt-get install ssmtp
sudo -H gedit /etc/ssmtp/ssmtp.conf
Тут потрібно додати:
# The user that gets all the mails (UID < 1000, usually the admin)
root=yourusernameofgmail@gmail.com
# The mail server (where the mail is sent to), both port 465 or 587 should be acceptable
# See also https://support.google.com/mail/answer/78799
mailhub=smtp.gmail.com:587
# The address where the mail appears to come from for user authentication.
rewriteDomain=gmail.com
# Use SSL/TLS before starting negotiation
UseTLS=Yes
UseSTARTTLS=Yes
# Username/Password
AuthUser=yourusernameofgmail
AuthPass=yourGmailPassowrd
AuthMethod=LOGIN
# Email 'From header's can override the default domain?
FromLineOverride=yes
Виконати :
sudo -H gedit /etc/ssmtp/revaliases
Введіть туди:
root:yourusernameofgmail@gmail.com:smtp.gmail.com:587
Увімкніть "менш безпечні додатки" в Gmail:
https://support.google.com/accounts/answer/6010255?hl=uk
Перевірте це, запустивши на терміналі наступне:
echo "Body of mail is abc" | mail -s "Subject is xyz" "someusername@gmail.com"`
На додаток до вище, я ще отримував цю помилку
echo "Test message from Linux server using ssmtp" | sudo ssmtp -vvv somebody@mil.gov
[<-] 220 smtp.gmail.com ESMTP v193sm19198825qka.18 - gsmtp
[->] EHLO localhost
[<-] 250 SMTPUTF8
[->] STARTTLS
[<-] 220 2.0.0 Ready to start TLS
[->] EHLO localhost
[<-] 250 SMTPUTF8
[->] AUTH LOGIN
[<-] 334 VXNlcm5hbWU6
[->] aG94Z2VuZUBrrrFpbC5jb20=
[<-] 334 UGFzweliecmQ6
[<-] 534 5.7.14 https://support.google.com/mail/answer/78754 v193sm19198825qka.18 - gsmtp
ssmtp: Authorization failed (534 5.7.14 https://support.google.com/mail/answer/78754 v193sm19198825qka.18 - gsmtp)
РІШЕННЯ: виконайте скидання пароля gmail навіть у випадку правильного поточного пароля ... можливо, запобіжні заходи Google