it-swarm-eu.dev

Mohu nastavit systémovou poštu pro použití externího serveru SMTP?

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) .

78
cwd

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.

72

Pro postfix:

  • Přidejte adresu IP pro externí poštovní relé do /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=-

24
Nils

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.

13
teknopaul

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.

Kompilace a instalace

./configure
make
./install.sh --version 3.1.3 --prefix /usr --mandir /usr/share/man --sysconfdir /etc

Možnosti příkazového řádku e-mailu

$ 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

Ukázka použití

Je zadána jednoduchá pošta se serverem SMTP

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]

Pošta HTML

echo "<h1>header</h1><p>paragraph</p>" | email -html -subject "unix.stackexchange.com Q36982 HTML mail" [email protected]

Přílohy

echo "see the attachment(s)" | email -subject "This is my email.conf file" -attach /etc/email/email.conf -attach [email protected]
7
LiuYan 刘研

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.

2
Eli Rosencruft

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/

1
Shrikant

Postfixová konfigurace

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é

0
intika