Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Invio di e-mail non elaborate utilizzando l'API Amazon SES v2
Puoi utilizzare l'SendEmail
operazione Amazon SES API v2 con il tipo di contenuto specificato raw
per inviare messaggi personalizzati ai destinatari utilizzando il formato e-mail non elaborato.
Informazioni su campi di intestazione e-mail
SMTP (Simple Mail Transfer Protocol) specifica come devono essere inviati i messaggi e-mail definendo l'envelope del messaggio e-mail e alcuni dei relativi parametri senza fare riferimento al contenuto del messaggio. Il formato IMF (Internet Message Format) (RFC 5322
Con la specifica IMF, ogni messaggio e-mail è costituito da un'intestazione e un corpo. L'intestazione è costituita dai metadata del messaggio e il corpo contiene il messaggio. Per ulteriori informazioni su intestazione e corpo dei messaggi e-mail, consulta Formato dell'e-mail in Amazon SES.
Uso di MIME
Il protocollo SMTP è stato progettato per inviare messaggi e-mail che contengono solo caratteri ASCII a 7 bit. Questa specifica rende SMTP insufficiente per le codifiche di testo non ASCII (ad esempio Unicode), il contenuto binario o gli allegati. Lo standard MIME (Multipurpose Internet Mail Extensions) è stato sviluppato per rendere possibile l'invio di molti altri tipi di contenuti tramite il protocollo SMTP.
Lo standard MIME funziona suddividendo il corpo messaggio in più parti, quindi specificando cosa fare con ogni parte. Una parte del corpo di un messaggio e-mail può ad esempio essere costituita da testo semplice e un'altra può essere in formato HTML. MIME permette inoltre ai messaggi e-mail di contenere uno o più allegati. I destinatari dei messaggi possono visualizzare gli allegati dai propri client e-mail oppure possono salvarli.
L'intestazione del messaggio e il contenuto sono separati da una riga vuota. Ogni parte del messaggio e-mail è separata da una stringa di caratteri di delimitazione che indica l'inizio e la fine della parte.
Il messaggio in più parti nell'esempio seguente contiene una parte di testo, una parte HTML e un allegato. L'allegato va posizionato appena sotto alle intestazioni allegati ed è spesso codificato in base64
, come mostrato in questo esempio.
From: "Sender Name" <sender@example.com> To: recipient@example.com Subject: Customer service contact info Content-Type: multipart/mixed; boundary="a3f166a86b56ff6c37755292d690675717ea3cd9de81228ec2b76ed4a15d6d1a" --a3f166a86b56ff6c37755292d690675717ea3cd9de81228ec2b76ed4a15d6d1a Content-Type: multipart/alternative; boundary="sub_a3f166a86b56ff6c37755292d690675717ea3cd9de81228ec2b76ed4a15d6d1a" --sub_a3f166a86b56ff6c37755292d690675717ea3cd9de81228ec2b76ed4a15d6d1a Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable Please see the attached file for a list of customers to contact. --sub_a3f166a86b56ff6c37755292d690675717ea3cd9de81228ec2b76ed4a15d6d1a Content-Type: text/html; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable <html> <head></head> <body> <h1>Hello!</h1> <p>Please see the attached file for a list of customers to contact.</p> </body> </html> --sub_a3f166a86b56ff6c37755292d690675717ea3cd9de81228ec2b76ed4a15d6d1a-- --a3f166a86b56ff6c37755292d690675717ea3cd9de81228ec2b76ed4a15d6d1a Content-Type: text/plain; name="customers.txt" Content-Description: customers.txt Content-Disposition: attachment;filename="customers.txt"; creation-date="Sat, 05 Aug 2017 19:35:36 GMT"; Content-Transfer-Encoding: base64 SUQsRmlyc3ROYW1lLExhc3ROYW1lLENvdW50cnkKMzQ4LEpvaG4sU3RpbGVzLENhbmFkYQo5MjM4 OSxKaWUsTGl1LENoaW5hCjczNCxTaGlybGV5LFJvZHJpZ3VleixVbml0ZWQgU3RhdGVzCjI4OTMs QW5heWEsSXllbmdhcixJbmRpYQ== --a3f166a86b56ff6c37755292d690675717ea3cd9de81228ec2b76ed4a15d6d1a--
Il tipo di contenuto per il messaggio è multipart/mixed
, che indica che il messaggio ha molte parti (in questo esempio, un corpo e un allegato) e che il client di ricezione deve gestire ogni parte separatamente.
Nidificata all'interno della sezione del corpo si trova una seconda parte, che usa il tipo di contenuto multipart/alternative
. Questo tipo di contenuto indica che ogni parte include versioni alternative dello stesso contenuto (in questo caso, una versione di testo e una versione HTML). Se il client e-mail del destinatario è in grado di visualizzare contenuti HTML, viene visualizzata la versione HTML del corpo del messaggio. Se il client e-mail del destinatario non è in grado di visualizzare contenuti HTML, viene visualizzata la versione con testo normale del corpo del messaggio.
Entrambe le versioni del messaggio conterranno inoltre un allegato (in questo caso, un breve file di testo che contiene i nomi dei clienti).
Quando nidifichi una parte MIME all'interno di un'altra parte, come in questo esempio, la parte nidificata deve usare un parametro boundary
distinto dal parametro boundary
nella parte padre. Queste delimitazioni devono essere costituite da stringhe di caratteri univoche. Per definire una delimitazione tra parti MIME, digita due trattini (--) seguiti dalla stringa di delimitazione. Alla fine di una parte MIME, posiziona due trattini sia all'inizio che alla fine della stringa di delimitazione.
Nota
Un messaggio non può contenere più di 500 parti MIME.
Codifica MIME
Per mantenere la compatibilità con i sistemi meno recenti, Amazon SES mantiene la limitazione ASCI a 7 bit di SMTP secondo quanto previsto dallo standard RFC 2821
Indirizzi e-mail
La stringa dell'indirizzo e-mail deve essere ASCII a 7 bit. Se desideri utilizzare indirizzi e-mail (del mittente o del destinatario) che contengono caratteri Unicode nella parte del dominio, devi codificare il dominio utilizzando Punycode. Punycode non è consentito nella parte locale dell'indirizzo e-mail (ad esempio, la parte prima della @), né nel nome del mittente. Se desideri utilizzare caratteri Unicode nel nome «descrittivo da», devi codificare il nome «descrittivo da» utilizzando la sintassi delle parole codificate in MIME, come descritto in questa sezione. Per ulteriori informazioni su Punycode, consulta RFC 3492
Nota
Questa regola si applica solo agli indirizzi e-mail che specifichi nella busta del messaggio, non alle intestazioni dei messaggi. Quando utilizzi l'SendEmail
operazione Amazon SES API v2, gli indirizzi specificati nei Destinations
parametri Source
e definiscono rispettivamente il mittente e il destinatario della busta.
Intestazioni dell'e-mail
Per codificare un messaggio, utilizza la sintassi codificata MIME. La sintassi codificata MIME usa il seguente formato:
=?
charset
?encoding
?encoded-text
?=
Il valore di
può essere encoding
Q
o B
. Se il valore di codifica è Q
, il valore
deve utilizzare il Q-encoding. Se il valore di codifica è encoded-text
B
, il valore di
deve utilizzare la codifica base64.encoded-text
Ad esempio, se vuoi utilizzare la stringa "Як ти поживаєш?" Nella riga dell'oggetto di un messaggio e-mail, puoi utilizzare le seguenti codificazioni:
-
Q-encoding
=?utf-8?Q?=D0=AF=D0=BA_=D1=82=D0=B8_=D0=BF=D0=BE=D0=B6=D0=B8=D0=B2=D0=B0=D1=94=D1=88=3F?=
-
Codifica Base64
=?utf-8?B?0K/QuiDRgtC4INC/0L7QttC40LLQsNGU0Yg/?=
Per ulteriori informazioni sul Q-encoding, consulta RFC 2047
Corpo del messaggio
Per codificare un messaggio, puoi utilizzare la codifica quoted-printable o la codifica Base64. Quindi, utilizza l'intestazione Content-Transfer-Encoding
per indicare quale schema di codifica hai utilizzato.
Ad esempio, ipotizzando che il corpo del messaggio contenga il seguente testo:
१९७२ मे रे टॉमलिंसन ने पहला ई-मेल संदेश भेजा | रे टॉमलिंसन ने ही सर्वप्रथम @ चिन्ह का चयन किया और इन्ही को ईमेल का आविष्कारक माना जाता है
Se scegli di codificare questo testo usando la codifica base64, devi prima specificare la seguente intestazione:
Content-Transfer-Encoding: base64
Quindi, nella sezione del corpo dell'e-mail, devi includere il testo con codifica base64:
4KWn4KWv4KWt4KWoIOCkruClhyDgpLDgpYcg4KSf4KWJ4KSu4KSy4KS/4KSC4KS44KSoIOCkqOCl hyDgpKrgpLngpLLgpL4g4KSILeCkruClh+CksiDgpLjgpILgpKbgpYfgpLYg4KSt4KWH4KSc4KS+ IHwg4KSw4KWHIOCkn+ClieCkruCksuCkv+CkguCkuOCkqCDgpKjgpYcg4KS54KWAIOCkuOCksOCl jeCkteCkquCljeCksOCkpeCkriBAIOCkmuCkv+CkqOCljeCkuSDgpJXgpL4g4KSa4KSv4KSoIOCk leCkv+Ckr+CkviDgpJTgpLAg4KSH4KSo4KWN4KS54KWAIOCkleCliyDgpIjgpK7gpYfgpLIg4KSV 4KS+IOCkhuCkteCkv+Ckt+CljeCkleCkvuCksOCklSDgpK7gpL7gpKjgpL4g4KSc4KS+4KSk4KS+ IOCkueCliAo=
Nota
In alcuni casi, puoi utilizzare Content-Transfer-Encoding
a 8 bit nei messaggi inviati utilizzando Amazon SES. Tuttavia, se Amazon SES deve apportare delle modifiche ai tuoi messaggi (ad esempio, quando utilizzi il monitoraggio di aperture e clic), i contenuti codificati a 8 bit potrebbero non comparire correttamente quando il messaggio raggiunge la casella della posta in arrivo del destinatario. Per questo motivo, è sempre consigliabile codificare i contenuti che non siano ASCII a 7 bit.
File allegati
Per allegare un file a un'e-mail, devi codificare l'allegato utilizzando la codifica base64. Gli allegati sono in genere posizionati nelle parti del messaggio MIME dedicate, le quali includono le seguenti intestazioni:
-
Content-Type (Tipo di contenuto): il tipo di file dell'allegato. Di seguito sono elencati alcuni esempi comuni di dichiarazioni del tipo di contenuto MIME:
-
File di testo normale:
Content-Type: text/plain; name="sample.txt"
-
Documento Microsoft Word:
Content-Type: application/msword; name="document.docx"
-
Immagine JPG:
Content-Type: image/jpeg; name="photo.jpeg"
-
-
Content-Disposition (Disposizione del contenuto): specifica il modo in cui il client e-mail del destinatario deve gestire i contenuti. Per gli allegati, questo valore è
Content-Disposition: attachment
. -
Content-Transfer-Encoding (Codifica trasferimento del contenuto): lo schema utilizzato per codificare l'allegato. Per i file allegati, questo valore è quasi sempre
base64
. -
L'allegato codificato: è necessario codificare l'allegato vero e proprio e includerlo nel corpo sotto le intestazioni degli allegati, come mostrato nell'esempio.
Amazon SES accetta i tipi di file più comuni. Per un elenco dei tipi di file non accettati da Amazon SES, consulta Tipi di allegati non supportati di Amazon SES.
Invio di e-mail non elaborate utilizzando l'API Amazon SES v2
L'API Amazon SES v2 fornisce l'SendEmail
azione, che consente di comporre e inviare un messaggio e-mail nel formato specificato quando si imposta il tipo di contenuto su semplice, non elaborato o basato su modelli. Per una descrizione completa, consulta. SendEmail
L'esempio seguente specificherà il tipo di contenuto raw
per l'invio di messaggi utilizzando il formato e-mail non elaborato.
Nota
Per suggerimenti su come aumentare la velocità di invio delle e-mail quando effettui più chiamate a SendEmail
, consulta Aumento della velocità effettiva con Amazon SES.
Il corpo del messaggio deve contenere un messaggio e-mail in formato RAW formattato correttamente, con codifica appropriata per i campi di intestazione e il corpo del messaggio. Anche se è possibile creare il messaggio in formato RAW manualmente all'interno di un'applicazione, è molto più facile farlo usando le librerie di posta esistenti.