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 tramite Amazon SES API 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
Simple Mail Transfer Protocol (SMTP) specifica come inviare i messaggi e-mail definendo la busta di posta e alcuni dei suoi parametri, ma non si occupa del contenuto del messaggio. Invece, l'Internet Message Format (RFC5322
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.
Usando MIME
Il SMTP protocollo è stato originariamente progettato per inviare messaggi di posta elettronica contenenti solo ASCII caratteri a 7 bit. Questa specifica non è SMTP sufficiente per le codifiche non ASCII testuali (come Unicode), il contenuto binario o gli allegati. Lo standard Multipurpose Internet Mail Extensions (MIME) è stato sviluppato per consentire l'invio di molti altri tipi di contenuti utilizzando. SMTP
Lo MIME standard funziona suddividendo il corpo del messaggio in più parti e quindi specificando cosa fare con ciascuna parte. Ad esempio, una parte del corpo di un messaggio di posta elettronica potrebbe essere in testo semplice, mentre un'altra potrebbe HTML esserlo. Inoltre, MIME consente ai messaggi di posta elettronica 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 composto da più parti nell'esempio seguente contiene un testo e una HTML parte 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 contiene versioni alternative dello stesso contenuto (in questo caso, una versione testuale e una HTML versione). Se il client di posta elettronica del destinatario è in grado di visualizzare il HTML contenuto, mostra la HTML versione del corpo del messaggio. Se il client di posta elettronica del destinatario non è in grado di visualizzare il HTML contenuto, mostra la versione in testo semplice 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 nidificate una MIME parte all'interno di un'altra parte, come in questo esempio, la parte nidificata deve utilizzare un boundary
parametro distinto dal boundary
parametro della parte principale. Queste delimitazioni devono essere costituite da stringhe di caratteri univoche. Per definire un limite tra le MIME parti, digitate due trattini (--) seguiti dalla stringa limite. Alla fine di una MIME parte, inserite due trattini sia all'inizio che alla fine della stringa limite.
Nota
Un messaggio non può contenere più di 500 parti. MIME
MIMECodifica
Per mantenere la compatibilità con i sistemi precedenti, Amazon SES rispetta la ASCII limitazione di 7 bit SMTP definita nel RFC 2821.
Indirizzi e-mail
La stringa dell'indirizzo e-mail deve essere a 7 bit. ASCII 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 si desidera utilizzare caratteri Unicode nel nome «descrittivo da», è necessario codificare il nome «descrittivo da» utilizzando la sintassi delle MIME parole codificate, come descritto in. Invio di e-mail non elaborate tramite Amazon SES API v2 Per ulteriori informazioni su Punycode, vedere 3492. RFC
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 l'intestazione di un messaggio, usa la sintassi con parole codificate. MIME MIMEla sintassi delle parole codificate utilizza 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 sulla codifica Q, vedere 2047. RFC
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 l'8 bit Content-Transfer-Encoding
nei messaggi che invii tramite AmazonSES. Tuttavia, se Amazon SES deve apportare modifiche ai tuoi messaggi (ad esempio, quando utilizzi il tracciamento delle aperture e dei clic), i contenuti con codifica a 8 bit potrebbero non apparire correttamente quando arrivano nelle caselle di posta dei destinatari. Per questo motivo, dovresti sempre codificare contenuti che non siano a 7 bit. ASCII
File allegati
Per allegare un file a un'e-mail, devi codificare l'allegato utilizzando la codifica base64. Gli allegati vengono in genere inseriti in sezioni dedicate ai MIME messaggi, che includono le seguenti intestazioni:
-
Content-Type (Tipo di contenuto): il tipo di file dell'allegato. Di seguito sono riportati alcuni esempi di dichiarazioni MIME Content-Type comuni:
-
File di testo normale:
Content-Type: text/plain; name="sample.txt"
-
Documento Microsoft Word:
Content-Type: application/msword; name="document.docx"
-
JPGimmagine —
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 che Amazon SES non accetta, consultaTipi di SES allegati non supportati da Amazon.
Invio di e-mail non elaborate tramite Amazon SES API v2
Amazon SES API 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.