Fare in modo che il tuo server ti invii e-mail è un modo semplice per ricevere notifiche dagli script bash, applicazioni e lavori cron. L'e-mail della riga di comando funziona in modo simile all'e-mail personale ed è facile da configurare e utilizzare.
Come funziona l'e-mail da riga di comando??
Quando la posta elettronica viaggia attraverso i tubi di Internet, generalmente inviato tramite Simple Mail Transfer Protocol, o SMTP. Il server che gestisce l'invio della posta si chiama server SMTP e molti provider di posta elettronica gratuiti (Gmail, Yahoo, eccetera.) fornire server SMTP gratuitamente. Questo è ottimo per questo caso d'uso, poiché devi solo configurare l'applicazione a riga di comando che esegue l'invio.
Questa applicazione si chiama Mail Transfer Agent (MTA) ed è responsabile della comunicazione con il server SMTP. Dovrai autenticare l'MTA con il server SMTP, che in genere è semplice come darti la password o la chiave. Dopo, l'MTA sarà in grado di agire come te e inviare e-mail dal tuo account.
Se hai intenzione di inviare email agli utenti finali, dovrai configurare più informazioni con il tuo provider SMTP. Generalmente, questo significa verificare il tuo dominio con l'autenticazione DKIM e SPF, che mostra che sei il proprietario del dominio e non stai falsificando il tuo indirizzo. Puoi farlo con Gmail, ma se stai inviando molte email, dovresti usare una soluzione aziendale come Amazon SES.
Come installare e configurare Postfix
La soluzione più semplice per l'e-mail della riga di comando è utilizzare Postfix come MTA, utilizzando un server SMTP gratuito come Gmail. Gmail ha una tariffa limitata di 100 email al giorno, che è probabilmente sufficiente per semplici notifiche e-mail. Se hai bisogno di più di questo, Puoi usare Amazon SES oh InviaGriglia, che dovrebbero essere sostituti diretti per il server SMTP di Gmail in questo esempio.
Postfix può anche essere eseguito il tuo server SMTP, ma è più difficile da configurare e meno compatibile con i destinatari esterni a meno che non si configuri la verifica del dominio.
Instale Postfix y libsasl2-modules
, un pacchetto per gestire l'autenticazione SMTP, dal gestore di pacchetti della tua distribuzione. Per sistemi basati su Debian come Ubuntu, sarebbe:
sudo apt-get install postfix libsasl2-modules
Poiché Postfix è installato, chiederà la configurazione. Nella prima schermata, Selezionare “Sito web”, che configurerà Postfix per usare SMTP.
Il seguente messaggio ti chiederà il tuo nome di dominio. Non hai bisogno di un nome di dominio per usare Postfix, ma ne avrai bisogno per inviare le tue email da quel nome di dominio. In questo esempio, senza specificare il nome di dominio, le tue email proverranno dall'account Gmail che hai impostato per Postfix.
Prossimo, deve autenticare Postfix. tu Maggio usa la password Gmail del tuo account, che va bene se crei un nuovo account solo per Postfix, ma se stai usando il tuo account personale, vorrai creare un password dell'app. così, la password può essere revocata in qualsiasi momento. Tieni presente che avrai bisogno dell'autenticazione a due fattori abilitata per utilizzare le password delle app.
Postfix memorizza i dettagli di autenticazione in /etc/postfix/sasl/sasl_passwd
. Questo file potrebbe non essere presente per impostazione predefinita, quindi potrebbe essere necessario crearlo con touch
. Aprilo e incolla le tue informazioni in:
[smtp.gmail.com]:587 [email protected]:parola d'ordine
In questo modo PostFix viene configurato per l'utilizzo del server SMTP di Google e l'autenticazione con i dati.
Prossimo, Correre postmap
su sasl_passwd
:
sudo postmap /etc/postfix/sasl_passwd
Questo genererà un sasl_passwd.db
file utilizzato da Postfix. Entrambi i file archiviano la password dell'app in testo normale, quindi ti consigliamo di limitarli alla radice eseguendo chown
e chmod
:
sudo chown root:root /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db
sudo chmod 600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db
Postfix dovrebbe ora essere pronto per l'uso, È tuttavia necessario configurare il file di configurazione Postfix principale per l'utilizzo dell'inoltro SMTP e delle credenziali SASL. Aprire /etc/postfix/main.cf
nel tuo editor di testo preferito e cerca l'opzione “relayhost”. Modificare questa impostazione per utilizzare il server SMTP di Gmail:
relayhost = [smtp.gmail.com]:587
Dopo, alla fine del file, Aggiungere le seguenti righe per configurare SASL e utilizzare il file della password.
# enable SASL authentication smtp_sasl_auth_enable = yes # Metodi Disallow che consentono l'autenticazione anonima. smtp_sasl_security_options = noanonimo # where to find sasl_passwd smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd # Enable STARTTLS encryption smtp_use_tls = yes # where to find CA certificates smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
Salva questo file, quindi riavviare Postfix con systemctl
:
sudo systemctl riavvio postfix
postfix dovrebbe ora essere completamente configurato e impostato come gestore di posta predefinito sul sistema. Puoi provarlo usando Postfix stesso sendmail
comando:
sendmail [email protected] FROM: [email protected] SUBJECT: Ciao dal tuo server! Questa è un'email di prova inviata dal tuo server da Postfix. .
Controlla la tua casella di posta (o vassoio di uscita) e dovresti vedere una nuova email. puoi correre sudo tail -f /var/log/mail.log
(oh mail.err
) per controllare i registri della posta.
Postfix si configurerà come controller di posta predefinito del tuo server. Qualsiasi applicazione o programma che deve inviare e-mail ora dovrebbe utilizzare Postfix per impostazione predefinita, come PHP (que usa Postfix sendmail
). Alcuni potrebbero richiedere una configurazione aggiuntiva, che di solito dice all'app di usare Postfix.
Se non vuoi usare sendmail
(visto che è un po' goffo) puoi installare un altro client di posta. Un buon cliente è mutt
, che supporta l'invio di file come allegati e utilizzerà Postfix per impostazione predefinita. La sintassi per l'invio semplice è:
eco "contenuto della posta elettronica" | mutt -s "oggetto dell'email" [email protected]
E per allegare file, deve separare il -a
contrassegnare i valori del destinatario con un doppio trattino “--
“:
eco "contenuto della posta elettronica" | mutt -s "oggetto dell'email" -un /percorso/di/file -- [email protected]
Che apparirà nella tua casella di posta con il file allegato, supponendo che tu non raggiunga alcun limite di dimensione del file imposto dal server SMTP:
Qualunque sia il client di posta che scegli, ognuno di essi deve essere utilizzabile da script di shell, cron job e ovunque tu possa configurare per eseguire comandi Unix.