Jak wysłać pocztę z wiersza poleceń?
Jak wysłać pocztę z wiersza poleceń?
Odpowiedzi:
Spróbuj zainstalować klienta poczty e-mail Mutt . Inną opcją jest używanie emacsa z gnus . Dostępne są również inne opcje ... IMHO, powinieneś użyć więcej szczegółów w swoich pytaniach lub kilku różnych odpowiedzi na swoje pytanie, które otrzymasz :-)
Zainstaluj ssmtp :
sudo apt-get install ssmtp
Edytuj plik konfiguracyjny ssmtp:
gksu gedit /etc/ssmtp/ssmtp.conf
Dołącz następujący tekst:
root=username@gmail.com
mailhub=smtp.gmail.com:465
rewriteDomain=gmail.com
AuthUser=username
AuthPass=password
FromLineOverride=YES
UseTLS=YES
Uruchom ssmtp i podaj adres e-mail odbiorcy:
ssmtp recepient_name@gmail.com
Podaj szczegóły wiadomości w następujący sposób:
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.)
Naciśnij Ctrl+, Daby wysłać.
Możesz również umieścić tekst w pliku i wysłać go w następujący sposób:
ssmtp recipient_name@gmail.com < filename.txt
Przez większość czasu nie trzeba konfigurować serwera SMTP, którego można po prostu użyć mail
z wiersza poleceń (jeśli jeszcze go nie ma, zainstaluj za pomocą sudo apt-get install mailutils
). (Lub jeśli jesteś na serwerze, na którym skonfigurowano sendmail itp.)
marco@dagobah:~$ mail -v marco.ceppi.use@gmail.com
Subject: Hello World!
This is an email to myself.
Hope all is well.
.
Cc:
Kończymy wiadomości pojedynczo .
. Wtedy mail
pojawi się monit o Cc:
podanie informacji (lub pozostaw puste), a mail
następnie wydrukuje dodatkowe informacje o tym, co próbuje zrobić, a także szczegółowo przetworzy łączenie, przesyłanie i odbieranie danych z serwera pocztowego.
sudo apt-get install mailutils
zainstaluje serwer SMTP postfix
, który może być nieco przeważony dla niektórych osób.
apt-get install libio-socket-ssl-perl libnet-ssleay-perl sendemail
stosowanie:
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
Jeśli nie chcesz podawać hasła w wierszu poleceń (zazwyczaj nie jest to dobra rzecz), możesz pominąć ten parametr, a sendemail poprosi o hasło ... i wyświetli je na ekranie, ale przynajmniej nie będzie go w historii wiersza poleceń.
sendmail
bardzo wygodne. Dziękuję Ci.
-s smtp.gmail.com:587
.
pass=$(cat my_password); sendemail... -xp $name ...
i oczywiście, jeśli wywołujesz go programowo, możesz zrobić coś podobnego, np .: ruby, system("sendemail ... -xp #{File.read 'my_password'}...")
również może się nie powieść za pierwszym razem powinieneś otrzymać wiadomość e-mail z tym kontem, sugerującą „włączenie mniej bezpiecznych aplikacji”, a wtedy może to działać.
Potrzebujesz MTA, aby wysłać pocztę. W tym celu użyj postfiksa:
sudo apt-get install postfix
Aby wysłać e-mail:
echo "test message" | mailx -s 'test subject' myemail@mydomain.com
mailutils
kiedy wszedłem do terminalu
mail -s "subjet" -a "attchedfile_name" someone@dest_email.com
lub
cat "afile" | mail -s "subject" someone@dest_email.com
sudo apt-get install mailutils
w Ubuntu / Debian lub yum install mailx
w CentOS / Redhat
Wszystko jest wyjaśnione tutaj .
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
i nie masz nic przeciwko SSL / TLS ;-)
openssl s_client -starttls smtp ...
Jeśli próbujesz wysłać wiadomość e-mail z systemu, który nie uruchamia własnego serwera poczty e-mail (tj. Systemu stacjonarnego), musisz zainstalować coś takiego jak nullmailer lub esmtp , które przekierowują twoją pocztę lokalną na „prawdziwą” pocztę serwer.
Jako narzędzia wiersza poleceń możesz zainstalować mail lub mailx (pakiety mailutils, heirloom-mailx lub bsd-mailx). Jeśli potrzebujesz załączników, wypróbuj biabam.
Nigdy tego nie próbowałem, ale istnieje mail
polecenie, które może wysyłać pocztę. Zobacz pocztę elektroniczną .
Aby przetestować lokalny adres e-mail:
echo message | mail username@localhost
sudo apt-get install sharutils mailutils
uuencode filename filename | mail user@example.com
gdzie filename
jest to samo: oznacza plik wejściowy i plik zdalny.
sudo apt-get install sharutils
zauuencode
Możesz spróbować:
mail name@mailserver.com -s "Attached file" <<EOF
Hi
~| uuencode $HOME/filename.txt filename.txt
EOF
Działa z GNU Mailutils , sprawdź stronę internetową, aby uzyskać więcej informacji.
Uruchom :
sudo apt-get install ssmtp
sudo -H gedit /etc/ssmtp/ssmtp.conf
Należy tam dodać:
# 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
Uruchom :
sudo -H gedit /etc/ssmtp/revaliases
Wpisz tam:
root:yourusernameofgmail@gmail.com:smtp.gmail.com:587
Włącz „mniej bezpieczne aplikacje” w Gmailu:
https://support.google.com/accounts/answer/6010255?hl=pl
Sprawdź to, uruchamiając następujące polecenia na terminalu:
echo "Body of mail is abc" | mail -s "Subject is xyz" "someusername@gmail.com"`
Oprócz powyższego nadal pojawiał się ten błąd
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)
ROZWIĄZANIE: zresetuj hasło Gmaila, nawet jeśli bieżące hasło jest poprawne ... ewentualnie środek bezpieczeństwa Google