Je možné nastavit systémovou poštu na linuxové schránce tak, aby byla zasílána přes jiný server smtp - možná dokonce s ověřením? Pokud ano, jak to mám udělat?
Pokud to není jasné, uveďte příklad. Pokud jsem na příkazovém řádku a napište:
cat body.txt | mail -s "just a test" [email protected]
je možné nechat je poslat přes externí SMTP server, jako je G-mail?
Nehledám „způsob, jak posílat poštu z Gmailu z příkazové řádky“, ale spíše možnost nakonfigurovat celý systém tak, aby používal konkrétní server SMTP nebo možná jeden účet na serveru SMTP (možná přepsání adresy z) .
Zjistil jsem, že sSMTP je velmi jednoduchý na používání.
V systémech založených na Debianu:
apt-get install ssmtp
Poté upravte konfigurační soubor v souboru /etc/ssmtp/ssmtp.conf
Ukázková konfigurace pro použití gmailu pro odesílání e-mailů:
# root is the person who gets all mail for userids < 1000
[email protected]
# Here is the gmail configuration (or change it to your private smtp server)
mailhub=smtp.gmail.com:587
[email protected]
AuthPass=yourGmailPass
UseTLS=YES
UseSTARTTLS=YES
Poznámka: Ujistěte se, že ve vašem systému je příkaz "mail". balíček mailutils by měl tento poskytovat v systémech založených na Debianu.
Aktualizace: Existují lidé (a zprávy o chybách pro různé distribuce Linuxu), které sdělují, že sSMTP nepřijímá hesla se znakem 'mezera' nebo '#'. Pokud pro vás nefunguje sSMTP, může tomu tak být.
Pro postfix:
/etc/hosts
a přidejte do něj aliasové e-mailové schránky.Upravit konfiguraci postfixu:
relayhost = [mailrelay]
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/smtp_auth
smtp_sasl_security_options = noanonymous
Upravit /etc/postfix/smtp_auth
mailrelay login:password
Převést na hash-format
postmap /etc/postfix/smtp_auth
Není třeba říkat, že pouze root by měl být schopen číst toto ... chmod u=r,og=-
mailx podporuje nastavení smtp serveru na CLI ...
echo "message" | mailx -S smtp=$smtphost:$smtpport -s "subject line" -v [email protected]
Není třeba nic instalovat, pokud váš server smtp umožňuje odesílat neověřenou poštu.
Neexistuje žádná odpověď, která by nastavovala server smtp pro všechny kousky softwaru, který můžete mít v krabici pro Linux. Každý e-mailový klient může nakonfigurovat server SMTP.
Můj oblíbený je klient email ( github ). Je to opravdu jednoduché, není potřeba žádná složitá konfigurace, žádné závislosti. A můžete zadat argument smtp-server pomocí příkazového řádku, což znamená, že je vhodnější pro skriptování. Jedinou škoda je, že většina linuxových distribucí tento nástroj neobsahuje, takže jej musíte kompilovat sami.
Citace z e-mailový projekt na github
Otázka: Co je to „e-mail“?
Odpověď: 'email' je program, který jsem navrhl a který pošle e-mail přes příkazový řádek na vzdálené smtp servery nebo interně používá 'sendmail' a plně interaguje s GNUPG pro šifrování a podepisování vašich e-mailů, takže se rozhodnete tak učinit. .. GNUPG můžete získat na: http://www.gnupg.org
Děkuji cygwin za dejte mi vědět tohoto užitečného e-mail klienta.
./configure
make
./install.sh --version 3.1.3 --prefix /usr --mandir /usr/share/man --sysconfdir /etc
$ email --help
Options information is as follows
email [options] recipient1,recipient2,...
-h, -help module Print this message or specify one of the below options
-V, -verbose Display mailing progress.
-f, -from-addr Senders mail address
-n, -from-name Senders name
-b, -blank-mail Allows you to send a blank email
-e, -encrypt Encrypt the e-mail for first recipient before sending
-s, -subject subject Subject of message
-r, -smtp-server server Specify a temporary SMTP server for sending
-p, -smtp-port port Specify the SMTP port to connect to
-a, -attach file Attach file and base64 encode
-c, -conf-file file Path to non-default configuration file
-t, -check-config Simply parse the email.conf file for errors
-x, -timeout Set socket timeout.
-cc email,email,... Copy recipients
-bcc email,email,... Blind Copy recipients
-sign Sign the email with GPG
-html Send message in HTML format ( Make your own HTML! )
-tls Use TLS/SSL
-m, -smtp-auth type Set the SMTP AUTH type (plain or login)
-u, -smtp-user username Specify your username for SMTP AUTH
-i, -smtp-pass password Specify your password for SMTP AUTH
-g, -gpg-pass Specify your password for GPG
-H, -header string Add header (can be used multiple times)
-high-priority Send the email with high priority
-no-encoding Don't use UTF-8 encoding
echo "mail body" | email -subject "unix.stackexchange.com Q36982" -from-name LiuYan刘研 -from-addr [email protected] -smtp-server smtp.domain.com -smtp-port 25 [email protected] [email protected]
echo "<h1>header</h1><p>paragraph</p>" | email -html -subject "unix.stackexchange.com Q36982 HTML mail" [email protected]
echo "see the attachment(s)" | email -subject "This is my email.conf file" -attach /etc/email/email.conf -attach [email protected]
Nastavte lokální exim SMTP server podle pokynů na stránce this , ale na obrazovce první obrazovky Exim zvolte možnost „mail sent by smarthost; no local mail“. konfigurace. Tím nastavíte na svou schránku server SMTP, který může přijímat poštu z příkazů „mail“ nebo „mailx“, a předá všechny zprávy smarthost (ve vašem případě server Gmail) k doručení.
Chcete-li odesílat odchozí e-maily prostřednictvím serveru Gmail, musíte nastavit podpora TLS pro Exim , což není triviální. Toto Howto dává nějaké vysvětlení a zde je odkaz s dalším vysvětlením specifickým pro Gmail. Měli byste si nechat několik hodin, aby to fungovalo. Doporučuji začít odesláním e-mailu z vaší schránky na server SMTP s povoleným TLS, ke kterému máte přístup root, takže můžete ladit konfiguraci Exim TLS z obou stran, než se pokusíte odeslat serverem Gmail. Protože je komunikace šifrována, nebudete moci použít nástroje jako tcpdump k analýze protokolu na lince.
Pokud máte s hostitelem externí připojení k serveru smtp, můžete v hostiteli nakonfigurovat protokol smtp a odesílat e-maily.
Konfiguraci smtp v linuxových krocích najdete zde: http://kerneltalks.com/config/guide-smtp-configuration-linux/
Příklady e-mailových příkazů najdete zde: http://kerneltalks.com/commands/examples-send-email-through-terminal/
Požadavek: tyto 4 balíčky jsou potřeba postfix mailx cyrus-sasl-plugin ca-certificates
pro CentOS jinak mailutils libsasl2-modules ca-certificates
. Také pokud používáte gmail, dvoufázové ověření a aplikační heslo jsou vyžadovány/preferovány, aby to fungovalo správně!
Příklad se šifrováním google gmail a tls, upravte/připojte uvedené soubory, jak je popsáno níže
Krok 1:
/etc/postfix/sasl_passwd
[smtp.gmail.com]:587 [email protected]:apppassword
Krok 2:
chcete-li převést textový soubor do vyhledávací tabulky, spusťte následující a proveďte minimální ochranu souborů
postmap /etc/postfix/sasl_passwd
chown root. /etc/postfix/sasl_passwd
chmod 600 /etc/postfix/sasl_passwd
chown root. /etc/postfix/sasl_passwd.db
chmod 600 /etc/postfix/sasl_passwd.db
Krok 3:
/etc/aliases
(seznam uživatelů, kteří by mohli službu používat, v případě potřeby ji aktualizovat)
postmaster: root
nobody: root
hostmaster: root
webmaster: root
www: root
Krok 4:
spusťte newaliases
, chcete-li použít předchozí změny
Krok 5:
/etc/postfix/virtual
root [email protected]_want_it_to_receive_sent_mail.com
Krok 6:
použít předchozí změny spuštěním
postmap /etc/postfix/virtual
Krok 7:
/etc/postfix/main.cf
jej připojte/upravte a ujistěte se, že neexistuje duplikát, také nastavte správnou hodnotu na smtp_tls_CAfile
v závislosti na tom, kde se váš soubor nachází (poskytuje to ca-certificates
balíček)
inet_protocols = ipv4
relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
tls_append_default_CA = no
smtp_sasl_auth_enable = yes
smtp_tls_security_level = encrypt
smtp_tls_CAfile = /etc/ssl/ca-bundle.pem
#smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
mydestination =
relay_clientcerts =
smtp_sasl_security_options =
tls_random_source = dev:/dev/urandom
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
virtual_alias_maps = hash:/etc/postfix/virtual
Krok 8:
restartujte službu
systemctl restart postfix
Krok 9:
vyzkoušejte systém
echo "This is a test Email" | mail -s "Testing" root
Krok 10:
zkontrolovat protokoly
less /var/log/mail.log
Zdroje: pro více podrobností o nastavení si přečtěte tento článek ale všimněte si, že nastavení je jiné