S/MIME Parte 3: Plug and Play per Email Sicuro On-Premises
Uccello
1 dic 2019
1 min read

Conclusioni principali
Integrazione S/MIME per MTAs in sede: scopri come iniettare flussi di email firmati e criptati in PowerMTA, Momentum o SparkPost SMTP pur mantenendo le configurazioni esistenti di DKIM e conformità.
Modello di sicurezza ibrido: combina cifratura S/MIME + firma DKIM per garantire sia l'autenticità del messaggio che la privacy del contenuto in ambienti regolamentati.
Flusso di distribuzione: configura variabili d'ambiente (SMTP_HOST, credenziali, chiavi), esegui il workflow --sign --encrypt --send_smtp e valida i report di consegna.
Analisi delle prestazioni: i test mostrano una velocità pressoché identica per l'iniezione via SMTP rispetto all'API (~60 ms per messaggio, 200–280 ms per file più grandi).
Migliori pratiche di sicurezza: memorizza chiavi private e password API in file riservati (chmod 0700), utilizza sessioni SMTP autenticate e STARTTLS.
Casi d'uso: le imprese che modernizzano i sistemi di posta legacy possono estendere la criptatura end-to-end senza abbandonare l'infrastruttura esistente.
Q&A Highlights
Perché adattare S/MIME per server locali invece di cloud APIs?
Molti settori regolamentati (settori bancario e sanitario) devono conservare la posta in loco. Questo approccio mantiene il controllo sul flusso dei messaggi aggiungendo al contempo una moderna protezione crittografica.
Come funziona l'iniezione SMTP con PowerMTA o Momentum?
Inietti i messaggi S/MIME completamente formati al listener locale (porta 25 o VLAN privata). Questi MTAs gestiscono quindi la firma DKIM e la consegna come di consueto.
S/MIME è compatibile con DKIM?
Sì — DKIM firma il messaggio dopo la crittografia S/MIME, quindi i controlli di autenticazione e integrità rimangono intatti.
Come posso proteggere le mie credenziali SMTP e le chiavi?
Esporta le variabili di ambiente solo in script bloccati e usa le autorizzazioni dei file per limitare l'accesso a te stesso (
chmod 0700 my_envs.sh).Cosa dovrei monitorare dopo l'installazione?
Ritardo di consegna (API vs SMTP), percentuale di successo della stretta di mano TLS, risultati della convalida DKIM/S-MIME e log degli errori per "relaying denied" o autenticazione mancante.
Chi beneficia di più da questa configurazione?
Organizzazioni che gestiscono gateway di posta auto-ospitati che richiedono crittografia di livello conforme, ma desiderano strumenti plug-and-play senza dover riscrivere i flussi di posta.
In questa parte, vedremo come lo strumento può essere adattato per iniettare flussi di posta in piattaforme on-premises come PowerMTA e Momentum.
In parte 1, abbiamo fatto un rapido tour di S/MIME, esaminando la firma e la crittografia dei nostri flussi di messaggi su una gamma di client di posta. Per le organizzazioni che implementano la crittografia S/MIME, capire come raccogliere le chiavi pubbliche dei destinatari in modo efficiente diventa cruciale per operazioni di email sicure e scalabili. Parte 2 ci ha guidato attraverso un semplice strumento da riga di comando per firmare e criptare email, per poi inviarle tramite SparkPost.
In questa parte, vedremo come lo strumento può essere adattato per iniettare flussi di posta in piattaforme locali come Port25 PowerMTA e Momentum.
OK – cominciamo!
In parte 1, abbiamo fatto un rapido tour di S/MIME, esaminando la firma e la crittografia dei nostri flussi di messaggi su una gamma di client di posta. Per le organizzazioni che implementano la crittografia S/MIME, capire come raccogliere le chiavi pubbliche dei destinatari in modo efficiente diventa cruciale per operazioni di email sicure e scalabili. Parte 2 ci ha guidato attraverso un semplice strumento da riga di comando per firmare e criptare email, per poi inviarle tramite SparkPost.
In questa parte, vedremo come lo strumento può essere adattato per iniettare flussi di posta in piattaforme locali come Port25 PowerMTA e Momentum.
OK – cominciamo!
In parte 1, abbiamo fatto un rapido tour di S/MIME, esaminando la firma e la crittografia dei nostri flussi di messaggi su una gamma di client di posta. Per le organizzazioni che implementano la crittografia S/MIME, capire come raccogliere le chiavi pubbliche dei destinatari in modo efficiente diventa cruciale per operazioni di email sicure e scalabili. Parte 2 ci ha guidato attraverso un semplice strumento da riga di comando per firmare e criptare email, per poi inviarle tramite SparkPost.
In questa parte, vedremo come lo strumento può essere adattato per iniettare flussi di posta in piattaforme locali come Port25 PowerMTA e Momentum.
OK – cominciamo!
1. Getting Started
Installare lo strumento, ottenere le chiavi ecc. è esattamente lo stesso di prima. Quando si utilizza un sistema email on-premises come PowerMTA o Momentum, si è già responsabili dell'impostazione dei domini di invio, delle chiavi DKIM ecc. Le organizzazioni che utilizzano sistemi on-premises spesso devono anche affrontare sfide del sistema di archiviazione email per la conformità normativa e i requisiti di conservazione dei dati. Ciò che dobbiamo fare ora è fornire un modo per iniettare i messaggi S/MIME completamente formati nei vostri server.
Installare lo strumento, ottenere le chiavi ecc. è esattamente lo stesso di prima. Quando si utilizza un sistema email on-premises come PowerMTA o Momentum, si è già responsabili dell'impostazione dei domini di invio, delle chiavi DKIM ecc. Le organizzazioni che utilizzano sistemi on-premises spesso devono anche affrontare sfide del sistema di archiviazione email per la conformità normativa e i requisiti di conservazione dei dati. Ciò che dobbiamo fare ora è fornire un modo per iniettare i messaggi S/MIME completamente formati nei vostri server.
Installare lo strumento, ottenere le chiavi ecc. è esattamente lo stesso di prima. Quando si utilizza un sistema email on-premises come PowerMTA o Momentum, si è già responsabili dell'impostazione dei domini di invio, delle chiavi DKIM ecc. Le organizzazioni che utilizzano sistemi on-premises spesso devono anche affrontare sfide del sistema di archiviazione email per la conformità normativa e i requisiti di conservazione dei dati. Ciò che dobbiamo fare ora è fornire un modo per iniettare i messaggi S/MIME completamente formati nei vostri server.
2. SMTP injection verso Port25 PowerMTA
PowerMTA supporta vari mezzi di iniezione dei messaggi, inclusa una directory di "prelievo" dei file, SMTP e un'API. SMTP è il metodo utilizzato qui.
Per illustrare la configurazione più semplice possibile, installeremo gli strumenti S/MIME sullo stesso server di PowerMTA. Iniettiamo i messaggi al listener, che è aperto per impostazione predefinita sulla porta TCP 25, accettando solo traffico locale.
export SMTP_HOST=localhost
(Se dimentichi questo passaggio, vedrai: "Environment var SMTP_HOST not set – stopping" quando tenti di eseguire.)
Abbiamo già la chiave privata del mittente (steve@thetucks.com.pem) e la chiave pubblica del destinatario (steve.tuck@sparkpost.com.crt). Le prime righe del file del messaggio sono:
To: SteveT <steve.tuck@sparkpost.com> From: Steve <steve@thetucks.com> Subject: This is a message created using HEML MIME-Version: 1.0 Content-Type: text/html; charset=utf-8 Content-Language: en-GB Content-Transfer-Encoding: 7bit
Inviamo il messaggio con:
./sparkpostSMIME.py tests/fancy-HTML-to-smt.eml --sign --encrypt --send_smtp
Vediamo:
Opened SMTP connection (plain) Host: localhost Port: 25 User: "" Password: "" Sending: tests/fancy-HTML-to-smt.eml From: Steve <steve@thetucks.com> To: SteveT <steve.tuck@sparkpost.com> OK - in 0.028 seconds
Il messaggio arriva rapidamente nella inbox e viene segnalato in Mac Mail come firmato e crittografato.

Funzionalità aggiuntiva: DKIM con PowerMTA
DKIM è abbastanza facile da configurare e coesiste felicemente con S/MIME. I passaggi sono:
Utilizza il sito DKIM Wizard di PowerMTA per creare la chiave privata del dominio di invio (nel mio caso, mypmta.thetucks.com.pem) e il contenuto del record DNS TXT pubblico.
Configura il record DNS TXT, con un selettore scelto. Ad esempio, ho usato il selettore pmta201811. I caratteri validi del selettore sono definiti qui.
Metti il file mypmta.thetucks.com.pem sul server nella directory /etc/pmta.
Aggiungi il seguente codice alla mia /etc/pmta/config e riavvia il servizio pmta. (Qui, queste direttive sono scritte a livello globale; su un sistema di produzione, potresti preferire aggiungerle sotto un virtual-mta invece.)
host-name thetucks.com domain-key pmta201811,*,/etc/pmta/mypmta.thetucks.com.pem <domain *> dkim-sign yes </domain>
Il record DNS viene verificato correttamente tramite MX Toolbox e DKIM è ora attivo.

PowerMTA supporta vari mezzi di iniezione dei messaggi, inclusa una directory di "prelievo" dei file, SMTP e un'API. SMTP è il metodo utilizzato qui.
Per illustrare la configurazione più semplice possibile, installeremo gli strumenti S/MIME sullo stesso server di PowerMTA. Iniettiamo i messaggi al listener, che è aperto per impostazione predefinita sulla porta TCP 25, accettando solo traffico locale.
export SMTP_HOST=localhost
(Se dimentichi questo passaggio, vedrai: "Environment var SMTP_HOST not set – stopping" quando tenti di eseguire.)
Abbiamo già la chiave privata del mittente (steve@thetucks.com.pem) e la chiave pubblica del destinatario (steve.tuck@sparkpost.com.crt). Le prime righe del file del messaggio sono:
To: SteveT <steve.tuck@sparkpost.com> From: Steve <steve@thetucks.com> Subject: This is a message created using HEML MIME-Version: 1.0 Content-Type: text/html; charset=utf-8 Content-Language: en-GB Content-Transfer-Encoding: 7bit
Inviamo il messaggio con:
./sparkpostSMIME.py tests/fancy-HTML-to-smt.eml --sign --encrypt --send_smtp
Vediamo:
Opened SMTP connection (plain) Host: localhost Port: 25 User: "" Password: "" Sending: tests/fancy-HTML-to-smt.eml From: Steve <steve@thetucks.com> To: SteveT <steve.tuck@sparkpost.com> OK - in 0.028 seconds
Il messaggio arriva rapidamente nella inbox e viene segnalato in Mac Mail come firmato e crittografato.

Funzionalità aggiuntiva: DKIM con PowerMTA
DKIM è abbastanza facile da configurare e coesiste felicemente con S/MIME. I passaggi sono:
Utilizza il sito DKIM Wizard di PowerMTA per creare la chiave privata del dominio di invio (nel mio caso, mypmta.thetucks.com.pem) e il contenuto del record DNS TXT pubblico.
Configura il record DNS TXT, con un selettore scelto. Ad esempio, ho usato il selettore pmta201811. I caratteri validi del selettore sono definiti qui.
Metti il file mypmta.thetucks.com.pem sul server nella directory /etc/pmta.
Aggiungi il seguente codice alla mia /etc/pmta/config e riavvia il servizio pmta. (Qui, queste direttive sono scritte a livello globale; su un sistema di produzione, potresti preferire aggiungerle sotto un virtual-mta invece.)
host-name thetucks.com domain-key pmta201811,*,/etc/pmta/mypmta.thetucks.com.pem <domain *> dkim-sign yes </domain>
Il record DNS viene verificato correttamente tramite MX Toolbox e DKIM è ora attivo.

PowerMTA supporta vari mezzi di iniezione dei messaggi, inclusa una directory di "prelievo" dei file, SMTP e un'API. SMTP è il metodo utilizzato qui.
Per illustrare la configurazione più semplice possibile, installeremo gli strumenti S/MIME sullo stesso server di PowerMTA. Iniettiamo i messaggi al listener, che è aperto per impostazione predefinita sulla porta TCP 25, accettando solo traffico locale.
export SMTP_HOST=localhost
(Se dimentichi questo passaggio, vedrai: "Environment var SMTP_HOST not set – stopping" quando tenti di eseguire.)
Abbiamo già la chiave privata del mittente (steve@thetucks.com.pem) e la chiave pubblica del destinatario (steve.tuck@sparkpost.com.crt). Le prime righe del file del messaggio sono:
To: SteveT <steve.tuck@sparkpost.com> From: Steve <steve@thetucks.com> Subject: This is a message created using HEML MIME-Version: 1.0 Content-Type: text/html; charset=utf-8 Content-Language: en-GB Content-Transfer-Encoding: 7bit
Inviamo il messaggio con:
./sparkpostSMIME.py tests/fancy-HTML-to-smt.eml --sign --encrypt --send_smtp
Vediamo:
Opened SMTP connection (plain) Host: localhost Port: 25 User: "" Password: "" Sending: tests/fancy-HTML-to-smt.eml From: Steve <steve@thetucks.com> To: SteveT <steve.tuck@sparkpost.com> OK - in 0.028 seconds
Il messaggio arriva rapidamente nella inbox e viene segnalato in Mac Mail come firmato e crittografato.

Funzionalità aggiuntiva: DKIM con PowerMTA
DKIM è abbastanza facile da configurare e coesiste felicemente con S/MIME. I passaggi sono:
Utilizza il sito DKIM Wizard di PowerMTA per creare la chiave privata del dominio di invio (nel mio caso, mypmta.thetucks.com.pem) e il contenuto del record DNS TXT pubblico.
Configura il record DNS TXT, con un selettore scelto. Ad esempio, ho usato il selettore pmta201811. I caratteri validi del selettore sono definiti qui.
Metti il file mypmta.thetucks.com.pem sul server nella directory /etc/pmta.
Aggiungi il seguente codice alla mia /etc/pmta/config e riavvia il servizio pmta. (Qui, queste direttive sono scritte a livello globale; su un sistema di produzione, potresti preferire aggiungerle sotto un virtual-mta invece.)
host-name thetucks.com domain-key pmta201811,*,/etc/pmta/mypmta.thetucks.com.pem <domain *> dkim-sign yes </domain>
Il record DNS viene verificato correttamente tramite MX Toolbox e DKIM è ora attivo.

3. SMTP Injection Verso Momentum
Momentum supporta vari mezzi di iniezione dei messaggi, inclusi API e SMTP. SMTP è il metodo utilizzato qui, verso un host che esegue già Momentum. Lasceremo la sua configurazione invariata, poiché ha già la capacità di accettare iniezioni in arrivo da altri host approvati.
Questa è una versione più piccola di un setup di produzione, dove i nodi di “generation” e i nodi MTA sono separati, ma strettamente collegati tramite una VLAN privata e bilanciatori di carico, gestendo il traffico di iniezione SMTP interno.

Gli strumenti S/MIME sono installati come prima, e inietteremo messaggi all'indirizzo dell'host SMTP (MTA):
export SMTP_HOST=xx.xx.xx.xx # imposta qui il tuo indirizzo MTA / VIP
Come prima, abbiamo già la chiave privata del mittente (steve@thetucks.com.pem) e la chiave pubblica del destinatario (steve.tuck@sparkpost.com.crt) presenti sul nodo di “generation”. Le prime righe del file del messaggio corrispondono a questi indirizzi.
Inviamo il messaggio dal nodo di “generation” con esattamente lo stesso comando di prima, e il messaggio appare nell'inbox.
./sparkpostSMIME.py tests/fancy-HTML-to-smt.eml --sign --encrypt --send_smtp
Come ci si aspetterebbe, S/MIME coesiste felicemente anche con il DKIM signing di Momentum.
Momentum supporta vari mezzi di iniezione dei messaggi, inclusi API e SMTP. SMTP è il metodo utilizzato qui, verso un host che esegue già Momentum. Lasceremo la sua configurazione invariata, poiché ha già la capacità di accettare iniezioni in arrivo da altri host approvati.
Questa è una versione più piccola di un setup di produzione, dove i nodi di “generation” e i nodi MTA sono separati, ma strettamente collegati tramite una VLAN privata e bilanciatori di carico, gestendo il traffico di iniezione SMTP interno.

Gli strumenti S/MIME sono installati come prima, e inietteremo messaggi all'indirizzo dell'host SMTP (MTA):
export SMTP_HOST=xx.xx.xx.xx # imposta qui il tuo indirizzo MTA / VIP
Come prima, abbiamo già la chiave privata del mittente (steve@thetucks.com.pem) e la chiave pubblica del destinatario (steve.tuck@sparkpost.com.crt) presenti sul nodo di “generation”. Le prime righe del file del messaggio corrispondono a questi indirizzi.
Inviamo il messaggio dal nodo di “generation” con esattamente lo stesso comando di prima, e il messaggio appare nell'inbox.
./sparkpostSMIME.py tests/fancy-HTML-to-smt.eml --sign --encrypt --send_smtp
Come ci si aspetterebbe, S/MIME coesiste felicemente anche con il DKIM signing di Momentum.
Momentum supporta vari mezzi di iniezione dei messaggi, inclusi API e SMTP. SMTP è il metodo utilizzato qui, verso un host che esegue già Momentum. Lasceremo la sua configurazione invariata, poiché ha già la capacità di accettare iniezioni in arrivo da altri host approvati.
Questa è una versione più piccola di un setup di produzione, dove i nodi di “generation” e i nodi MTA sono separati, ma strettamente collegati tramite una VLAN privata e bilanciatori di carico, gestendo il traffico di iniezione SMTP interno.

Gli strumenti S/MIME sono installati come prima, e inietteremo messaggi all'indirizzo dell'host SMTP (MTA):
export SMTP_HOST=xx.xx.xx.xx # imposta qui il tuo indirizzo MTA / VIP
Come prima, abbiamo già la chiave privata del mittente (steve@thetucks.com.pem) e la chiave pubblica del destinatario (steve.tuck@sparkpost.com.crt) presenti sul nodo di “generation”. Le prime righe del file del messaggio corrispondono a questi indirizzi.
Inviamo il messaggio dal nodo di “generation” con esattamente lo stesso comando di prima, e il messaggio appare nell'inbox.
./sparkpostSMIME.py tests/fancy-HTML-to-smt.eml --sign --encrypt --send_smtp
Come ci si aspetterebbe, S/MIME coesiste felicemente anche con il DKIM signing di Momentum.
4. SMTP injection verso SparkPost
In part 2 abbiamo utilizzato l'API REST delle trasmissioni di SparkPost per inviare messaggi. Naturalmente, è anche possibile inviare messaggi in SparkPost utilizzando SMTP. Impostiamo le variabili d'ambiente in questo modo:
export SMTP_PASSWORD=<<YOUR_API_KEY_HERE>
Se stai usando il servizio ospitato in EU di SparkPost, imposta SMTP_HOST come smtp.eu.sparkpostmail.com.
(Vedi qui per ulteriori opzioni – ad esempio puoi inviare sulla porta 2525 invece di 587.)
L'output qui sotto mostra che viene utilizzato STARTTLS, insieme al nome utente e alla password.
./sparkpostSMIME.py tests/fancy-HTML-to-smt.eml --sign --encrypt --send_smtp
Vedrai:
Opened SMTP connection (STARTTLS) Host: smtp.sparkpostmail.com Port: 587 User: "SMTP_Injection" Password: "****************************************" Sending: tests/fancy-HTML-to-smt.eml From: Steve <steve@thetucks.com> To: SteveT <steve.tuck@sparkpost.com> OK - in 0.057 seconds
La password viene stampata con caratteri sostituiti da ***, così non comprometti la privacy della tua chiave se qualcuno sta guardando da sopra la tua spalla.
Messa in sicurezza delle tue credenziali
Nota che le variabili d'ambiente potrebbero essere impostate in un file script di shell o simile, per evitare di riscriverle. Se lo fai, proteggi le tue password/chiavi API limitando l'accesso a quel file solo a te. Ad esempio, se il tuo file di impostazione delle credenziali si chiama my_envs.sh, esegui:
chmod 0700 my_envs.sh
Avvertenze correlate a SMTP che potresti vedere
L'iniezione SMTP di SparkPost è piuttosto rigorosa, come ci si aspetterebbe da un servizio pubblico. Se non hai impostato il numero porta SMTP, vedrai un avvertimento:
{'bob.lumreeker@gmail.com': (550, b'5.7.1 relaying denied')}
Se non hai impostato il nome utente SMTP o non hai impostato la password, vedrai:
(530, b'5.7.1 Authorization required. Ref. https://developers.sparkpost.com/api/index#header-smtp-relay-endpoints', 'steve@thetucks.com')
Questi messaggi di errore sono semplicemente riportati così come sono dalla libreria Python SMTP, quindi la formattazione.
In part 2 abbiamo utilizzato l'API REST delle trasmissioni di SparkPost per inviare messaggi. Naturalmente, è anche possibile inviare messaggi in SparkPost utilizzando SMTP. Impostiamo le variabili d'ambiente in questo modo:
export SMTP_PASSWORD=<<YOUR_API_KEY_HERE>
Se stai usando il servizio ospitato in EU di SparkPost, imposta SMTP_HOST come smtp.eu.sparkpostmail.com.
(Vedi qui per ulteriori opzioni – ad esempio puoi inviare sulla porta 2525 invece di 587.)
L'output qui sotto mostra che viene utilizzato STARTTLS, insieme al nome utente e alla password.
./sparkpostSMIME.py tests/fancy-HTML-to-smt.eml --sign --encrypt --send_smtp
Vedrai:
Opened SMTP connection (STARTTLS) Host: smtp.sparkpostmail.com Port: 587 User: "SMTP_Injection" Password: "****************************************" Sending: tests/fancy-HTML-to-smt.eml From: Steve <steve@thetucks.com> To: SteveT <steve.tuck@sparkpost.com> OK - in 0.057 seconds
La password viene stampata con caratteri sostituiti da ***, così non comprometti la privacy della tua chiave se qualcuno sta guardando da sopra la tua spalla.
Messa in sicurezza delle tue credenziali
Nota che le variabili d'ambiente potrebbero essere impostate in un file script di shell o simile, per evitare di riscriverle. Se lo fai, proteggi le tue password/chiavi API limitando l'accesso a quel file solo a te. Ad esempio, se il tuo file di impostazione delle credenziali si chiama my_envs.sh, esegui:
chmod 0700 my_envs.sh
Avvertenze correlate a SMTP che potresti vedere
L'iniezione SMTP di SparkPost è piuttosto rigorosa, come ci si aspetterebbe da un servizio pubblico. Se non hai impostato il numero porta SMTP, vedrai un avvertimento:
{'bob.lumreeker@gmail.com': (550, b'5.7.1 relaying denied')}
Se non hai impostato il nome utente SMTP o non hai impostato la password, vedrai:
(530, b'5.7.1 Authorization required. Ref. https://developers.sparkpost.com/api/index#header-smtp-relay-endpoints', 'steve@thetucks.com')
Questi messaggi di errore sono semplicemente riportati così come sono dalla libreria Python SMTP, quindi la formattazione.
In part 2 abbiamo utilizzato l'API REST delle trasmissioni di SparkPost per inviare messaggi. Naturalmente, è anche possibile inviare messaggi in SparkPost utilizzando SMTP. Impostiamo le variabili d'ambiente in questo modo:
export SMTP_PASSWORD=<<YOUR_API_KEY_HERE>
Se stai usando il servizio ospitato in EU di SparkPost, imposta SMTP_HOST come smtp.eu.sparkpostmail.com.
(Vedi qui per ulteriori opzioni – ad esempio puoi inviare sulla porta 2525 invece di 587.)
L'output qui sotto mostra che viene utilizzato STARTTLS, insieme al nome utente e alla password.
./sparkpostSMIME.py tests/fancy-HTML-to-smt.eml --sign --encrypt --send_smtp
Vedrai:
Opened SMTP connection (STARTTLS) Host: smtp.sparkpostmail.com Port: 587 User: "SMTP_Injection" Password: "****************************************" Sending: tests/fancy-HTML-to-smt.eml From: Steve <steve@thetucks.com> To: SteveT <steve.tuck@sparkpost.com> OK - in 0.057 seconds
La password viene stampata con caratteri sostituiti da ***, così non comprometti la privacy della tua chiave se qualcuno sta guardando da sopra la tua spalla.
Messa in sicurezza delle tue credenziali
Nota che le variabili d'ambiente potrebbero essere impostate in un file script di shell o simile, per evitare di riscriverle. Se lo fai, proteggi le tue password/chiavi API limitando l'accesso a quel file solo a te. Ad esempio, se il tuo file di impostazione delle credenziali si chiama my_envs.sh, esegui:
chmod 0700 my_envs.sh
Avvertenze correlate a SMTP che potresti vedere
L'iniezione SMTP di SparkPost è piuttosto rigorosa, come ci si aspetterebbe da un servizio pubblico. Se non hai impostato il numero porta SMTP, vedrai un avvertimento:
{'bob.lumreeker@gmail.com': (550, b'5.7.1 relaying denied')}
Se non hai impostato il nome utente SMTP o non hai impostato la password, vedrai:
(530, b'5.7.1 Authorization required. Ref. https://developers.sparkpost.com/api/index#header-smtp-relay-endpoints', 'steve@thetucks.com')
Questi messaggi di errore sono semplicemente riportati così come sono dalla libreria Python SMTP, quindi la formattazione.
Quale è più veloce – SMTP o API?
Francamente, S/MIME è improbabile che sia un caso d'uso ad alto volume, ma avere lo stesso strumento con due opzioni di output era proprio un invito per noi a fare una gara!
Il file di test email “Avocado” utilizzato qui è di circa 19 KB. Ripetendo i test 10 volte tramite un ciclo bash, i tempi medi risultanti sono stati simili per SMTP e API, circa 60 millisecondi per messaggio, il che è piuttosto veloce. In questo caso, abbiamo iniettato da un'istanza media EC2 nella stessa regione di hosting di SparkPost.com, che è un buon modo per mantenere bassi i tempi di andata e ritorno in rete.
Ripetendo questo con un file di test più grande (577 KB), l'API ha impiegato circa 200 millisecondi, mentre SMTP ha impiegato 280 millisecondi per messaggio – ancora impressionante per una dimensione del file 30 volte più grande. Naturalmente, il vostro rendimento può variare a seconda della posizione, congestione internet, eccetera, ma le prestazioni difficilmente saranno un problema.
Se avete realmente bisogno delle massime prestazioni, un buon punto di partenza sarebbe avviare un numero definito di processi/sessioni di iniezione concorrenti secondo le nostre raccomandazioni sulle trasmissioni migliori pratiche – ad esempio da un'attività di supervisore.
Francamente, S/MIME è improbabile che sia un caso d'uso ad alto volume, ma avere lo stesso strumento con due opzioni di output era proprio un invito per noi a fare una gara!
Il file di test email “Avocado” utilizzato qui è di circa 19 KB. Ripetendo i test 10 volte tramite un ciclo bash, i tempi medi risultanti sono stati simili per SMTP e API, circa 60 millisecondi per messaggio, il che è piuttosto veloce. In questo caso, abbiamo iniettato da un'istanza media EC2 nella stessa regione di hosting di SparkPost.com, che è un buon modo per mantenere bassi i tempi di andata e ritorno in rete.
Ripetendo questo con un file di test più grande (577 KB), l'API ha impiegato circa 200 millisecondi, mentre SMTP ha impiegato 280 millisecondi per messaggio – ancora impressionante per una dimensione del file 30 volte più grande. Naturalmente, il vostro rendimento può variare a seconda della posizione, congestione internet, eccetera, ma le prestazioni difficilmente saranno un problema.
Se avete realmente bisogno delle massime prestazioni, un buon punto di partenza sarebbe avviare un numero definito di processi/sessioni di iniezione concorrenti secondo le nostre raccomandazioni sulle trasmissioni migliori pratiche – ad esempio da un'attività di supervisore.
Francamente, S/MIME è improbabile che sia un caso d'uso ad alto volume, ma avere lo stesso strumento con due opzioni di output era proprio un invito per noi a fare una gara!
Il file di test email “Avocado” utilizzato qui è di circa 19 KB. Ripetendo i test 10 volte tramite un ciclo bash, i tempi medi risultanti sono stati simili per SMTP e API, circa 60 millisecondi per messaggio, il che è piuttosto veloce. In questo caso, abbiamo iniettato da un'istanza media EC2 nella stessa regione di hosting di SparkPost.com, che è un buon modo per mantenere bassi i tempi di andata e ritorno in rete.
Ripetendo questo con un file di test più grande (577 KB), l'API ha impiegato circa 200 millisecondi, mentre SMTP ha impiegato 280 millisecondi per messaggio – ancora impressionante per una dimensione del file 30 volte più grande. Naturalmente, il vostro rendimento può variare a seconda della posizione, congestione internet, eccetera, ma le prestazioni difficilmente saranno un problema.
Se avete realmente bisogno delle massime prestazioni, un buon punto di partenza sarebbe avviare un numero definito di processi/sessioni di iniezione concorrenti secondo le nostre raccomandazioni sulle trasmissioni migliori pratiche – ad esempio da un'attività di supervisore.



