Questo tutorial ti mostrerà come configurare l'inoltro SMTP di Postfix con Mailjet su Debian. Postfix è un popolare server SMTP open source. In precedenza ho scritto un articolo su come configurare rapidamente il proprio server di posta elettronica su Debian con Modoboa, che ha aiutato molti lettori a gestire il proprio server di posta elettronica.
Tuttavia, alcuni lettori mi hanno detto che la porta 25 è bloccata dal provider di hosting o dall'ISP come un modo per controllare lo spam e-mail, quindi non potevano inviare e-mail. Vultr sbloccherebbe la porta 25 se glielo chiedi e ScalaHosting non blocca affatto la porta 25, quindi consiglio di utilizzare ScalaHosting VPS. Alcuni altri provider di hosting o ISP come DigitalOcean non sbloccherebbero la porta 25, quindi cosa puoi fare per aggirare questo blocco, se non puoi o non vuoi cambiare il tuo provider di hosting?
Inoltro SMTP in soccorso
Puoi bypassare la porta 25 e inviare e-mail al mondo esterno con l'inoltro SMTP perché utilizza la porta 587. Con l'inoltro SMTP, il tuo server di posta elettronica non invia direttamente l'e-mail all'indirizzo e-mail di destinazione. Invece, c'è un server di posta intermedio, altrimenti noto come host intelligente o host di inoltro, che invia e-mail per tuo conto. Il tuo server di posta elettronica comunica con lo smart host sulla porta 587, quindi lo smart host comunica con il server di posta del destinatario sulla porta 25.
L'inoltro SMTP può anche aiutarti a aggirare le liste nere anti-spam, se il tuo indirizzo IP è nella lista nera per qualsiasi motivo. Il server di posta del destinatario controlla l'indirizzo IP dell'host intelligente rispetto alle liste nere anti-spam pubbliche, invece dell'indirizzo IP del tuo server e poiché i servizi di inoltro SMTP mantengono una buona reputazione IP, quindi le tue e-mail possono passare attraverso le liste nere IP.
Utilizzo di Mailjet per inviare 200 e-mail al giorno gratuitamente
Esistono diversi provider di servizi di posta elettronica (ESP) che possono fungere da host intelligente. Alcuni fanno pagare una piccola tassa, altri offrono quote gratuite ogni mese. In questo articolo, vorrei mostrarti come utilizzare Mailjet, un provider di servizi di posta elettronica che ti consente di inviare 200 e-mail al giorno gratuitamente.
La cosa bella di Mailjet è che non richiede l'inserimento dei dati della carta di credito quando si utilizza il servizio di inoltro SMTP gratuito. Ci sono altri ESP che offrono quote gratuite ogni mese ma richiedono l'inserimento dei dettagli della carta di credito. (So quanto può essere frustrante quando non hai una carta di credito.) Mailjet è anche più facile da configurare, rispetto ad altri ESP.
Crea un account su mailjet.com. Quindi sulla dashboard puoi vedere le 3 cose che devi fare.
- Configurazione SMTP
- Gestione degli indirizzi dei mittenti
- configurazione dell'autenticazione del dominio (SPF e DKIM)
Fase 1:configurare Postfix SMTP Relay su Debian
Innanzitutto, installiamo il server SMTP Postfix su Debian con il seguente comando. Se Postfix è già in esecuzione sul tuo server, salta l'installazione di Postfix , ma devi comunque installare i libsasl2-modules
pacchetto.
sudo apt install postfix libsasl2-modules
Quando viene visualizzato il seguente messaggio, premere il tasto Tab e premere Invio.
Quindi scegli la seconda opzione:Internet Site
.
Quindi, imposta il nome della posta di sistema. Ad esempio, inserisco il mio nome di dominio linuxbabe.com
.
Dopo aver installato Postfix, apri il file di configurazione.
sudo nano /etc/postfix/main.cf
Trova la riga seguente.
relayhost =
Per impostazione predefinita, il suo valore non è impostato. Devi ottenere questo valore dal tuo account mailjet. Nella dashboard di mailjet, fai clic su setup my SMTP
.
Vedrai l'indirizzo del server SMTP e le credenziali SMTP.
Nel file di configurazione di Postfix, imposta il valore di relayhost
a in-v3.mailjet.com:587
.
relayhost = in-v3.mailjet.com:587
Quindi aggiungi le seguenti righe alla fine di questo file.
# outbound relay configurations smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous smtp_tls_security_level = may header_size_limit = 4096000
Salva e chiudi il file. Quindi crea il /etc/postfix/sasl_passwd
file.
sudo nano /etc/postfix/sasl_passwd
Aggiungi l'host di inoltro SMTP e le credenziali SMTP a questo file come di seguito. Sostituisci api-key
e secret-key
con la tua vera chiave API Mailjet e chiave segreta.
in-v3.mailjet.com:587 api-key:secret-key
Salva e chiudi il file. Quindi crea il file db hash corrispondente con postmap
.
sudo postmap /etc/postfix/sasl_passwd
Ora dovresti avere un file /etc/postfix/sasl_passwd.db
. Riavvia Postfix per rendere effettive le modifiche.
sudo systemctl restart postfix
Per impostazione predefinita, sasl_passwd
e sasl_passwd.db
il file può essere letto da qualsiasi utente sul server. Modifica l'autorizzazione a 600 in modo che solo root possa leggere e scrivere su questi due file.
sudo chmod 0600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db
D'ora in poi, Postfix invierà e-mail tramite mailjet.
Passaggio 2:aggiunta degli indirizzi dei mittenti
È necessario aggiungere il dominio del mittente o l'indirizzo del mittente per inviare e-mail tramite mailjet. Nella dashboard di mailjet, fai clic su manage sender addresses
. Puoi convalidare l'intero dominio o indirizzi email specifici.
Fase 3:configurazione dell'autenticazione del dominio
In questo passaggio, dobbiamo impostare il record SPF e DKIM, che è fortemente consigliato se desideri che le tue e-mail arrivino nella posta in arrivo del destinatario anziché nella cartella spam.
- SPF:quadro delle politiche del mittente. Questo è un record DNS che specifica quali indirizzi IP possono inviare email dal tuo dominio.
- DKIM:Posta identificata DomainKeys. Mailjet firmerà digitalmente le tue e-mail con una chiave privata. Il record DKIM contiene una chiave pubblica che consente al server di posta elettronica del destinatario di verificare la firma.
Nella dashboard di mailjet, fai clic su setup domain authentication
. Per impostazione predefinita, lo stato SPF e lo stato DKIM sono entrambi in errore. Fai clic su manage
e segui le istruzioni per aggiungere record SPF e DKIM.
Dopo aver creato i record SPF e DKIM, attendere alcuni istanti e aggiornare la pagina Web di mailjet. La propagazione su Internet dei nuovi record DNS può richiedere del tempo, a seconda del servizio di hosting DNS. Se i record SPF e DKIM sono impostati correttamente e la propagazione è completa, mailjet ti dirà che i record SPF e DKIM sono buoni.
Invio di un'e-mail di prova
Ora possiamo inviare un'e-mail di prova con mailx
comando come di seguito.
sudo apt install bsd-mailx echo "this is a test email." | mailx -r from-address -s hello to-address
Puoi anche inviare un'e-mail di prova dal tuo client webmail o client di posta desktop. È anche una buona idea testare il punteggio della tua e-mail su https://www.mail-tester.com. Come puoi vedere, ho ottenuto un punteggio perfetto.
Risoluzione dei problemi
Se la tua email non è stata consegnata e hai trovato il seguente messaggio nel registro della posta (/var/log/mail.log
),
Relay access denied (in reply to RCPT TO command))
quindi potrebbe essere necessario modificare il /etc/postfix/sasl_passwd
file e rimuovere il numero di porta dopo il nome host come di seguito.
in-v3.mailjet.com api-key:secret-key
Salva e chiudi il file. Quindi crea di nuovo il file di indice.
sudo postmap /etc/postfix/sasl_passwd
Riavvia Postfix per rendere effettive le modifiche.
sudo systemctl restart postfix
Ora puoi svuotare la coda delle e-mail (tentativo di consegnare le e-mail precedenti).
sudo postqueue -f
Aggiunta di domini aggiuntivi
Se hai configurato un server di posta su una nuova macchina per un nuovo nome di dominio e desideri configurare l'inoltro SMTP per questo nuovo nome di dominio, segui gli stessi passaggi:
- Configura le impostazioni di inoltro SMTP di Postfix
- Convalida il nuovo nome di dominio nella dashboard di Mailjet
- Imposta le verifiche SPF e DKIM