Creazione e impostazione del contenuto delle email
Crea nuovo messaggio email
Aspose.Email per Java consente agli sviluppatori di creare messaggi MIME (Multipurpose Internet Mail Extensions) da zero. La classe principale per questo scopo nell’API Aspose.Email per Java è la MailMessage classe. Questo argomento spiega i passaggi necessari per creare messaggi email nei formati EML, MSG e MTH usando Aspose.Email per Java.
Per creare un messaggio email da zero:
- Crea un’istanza della classe MailMessage.
- Imposta l’oggetto del messaggio usando il setSubject() metodo.
- Imposta il corpo del messaggio usando il setHtmlBody() metodo.
- Imposta il mittente dell’email usando il setFrom() metodo.
- Imposta il destinatario nel campo TO utilizzando il getTo().add() metodo.
- Imposta il destinatario nel campo CC utilizzando il getCC().add() metodo.
- Chiama il Save() metodo per salvare il file del messaggio su disco nei formati MSG, EML e MHT.
Specificare più destinatari
Il MailMessage rappresenta un messaggio email. Le istanze della classe MailMessage sono usate per costruire messaggi email che vengono trasmessi a un server SMTP usando il SmtpClient classe. Questo argomento dimostra come specificare più di un indirizzo email. Gli indirizzi email possono essere specificati usando la classe MailMessage. Gli indirizzi email usati nella classe MailMessage sono:
- To - Gli indirizzi dei destinatari possono essere specificati nel campo ‘To’. I destinatari del campo ‘To’ sono il pubblico principale del messaggio. Possono esserci più di un indirizzo destinatario
- Cc - CC sta per "carbon copy" o "courtesy copy" e consente di aggiungere destinatari email che devono vedere l’email ma che non sono necessariamente tenuti ad agire su di essa. Manager, ad esempio, o membri del tuo team che devono essere informati di una conversazione. Con Aspose.Email, gli indirizzi CC possono essere specificati nel tuo codice. In questo modo, le email automatiche, o tutte le email a un indirizzo specifico, possono essere copiate al personale pertinente.
- Bcc - Bcc, blind carbon copy, consente di inviare un’email a un destinatario nascosto agli altri destinatari. Dove un CC appare nelle informazioni email che i destinatari principali vedono, un Bcc no. È pensato per notifiche nascoste.
Per specificare più indirizzi email in un messaggio, segui questi passaggi:
- Crea un’istanza della classe MailMessage.
- Specifica il mittente e più indirizzi To, Cc e Bcc usando l’istanza MailMessage.
- Crea un’istanza della classe SmtpClient e invia l’email usando il metodo Send.
Il campione di codice seguente mostra come specificare più indirizzi To, CC e BCC.
Cambio degli indirizzi email in un nome amichevole
I campioni di programmazione di seguito dimostrano come cambiare gli indirizzi email in nomi amichevoli in un messaggio email. Un nome amichevole è un nome più comprensibile dell’indirizzo email, per esempio John Smith invece di js346@domain.com. Quando si invia un’email, possiamo associare un nome amichevole a un indirizzo email nel MailMessage costruttore della classe.
Per cambiare gli indirizzi email in nomi amichevoli in un messaggio email, segui questi passaggi:
- Crea un’istanza della classe MailMessage e specifica gli indirizzi email nei campi To e From insieme a nomi amichevoli.
- Specifica gli indirizzi email Cc e Bcc insieme a nomi amichevoli chiamando il costruttore della classe MailMessage nell’istanza MailMessage.
- Crea un’istanza della classe SmtpClient e invia l’email usando il metodo Send.
Il seguente frammento di codice mostra come visualizzare i Nomi per gli indirizzi email.
Imposta corpo mail
Il MailMessage classe rappresenta un messaggio email. Le istanze della classe MailMessage sono usate per costruire messaggi email che vengono trasmessi a un server SMTP per la consegna usando il SmtpClient classe. Un corpo mail può essere specificato usando la classe MailMessage. Un corpo email può essere specificato usando setHtmlBody metodo in MailMessage.
In aggiunta a HtmlBody, Aspose.Email ha un altro metodo relativo al corpo della mail:
- isBodyHtml: indica all’utente se il corpo è HTML o testo semplice.
Questo argomento mostra come definire il testo del corpo HTML e impostare il testo alternativo.
Impostazione del corpo HTML
HtmlBody viene usato per specificare il contenuto HTML di un corpo messaggio. HtmlBody deve essere racchiuso tra i tag . Il seguente frammento di codice mostra come impostare il corpo HTML.
Impostazione del testo alternativo
Usa il AlternateView classe per specificare copie di un messaggio email in formato diverso. Per esempio, se invii un messaggio in HTML, potresti anche voler fornire una versione testo semplice nel caso alcuni destinatari usino lettori email che non possono visualizzare contenuti HTML. Questa classe ha due proprietà, LinkedResources e BaseUri, che sono usati per risolvere gli URL all’interno del contenuto dell’email.
- LinkedResources è una collezione di oggetti LinkedResources. Quando renderizzati, gli URL all’interno del contenuto email sono prima confrontati con gli URL nel Content Link di ogni oggetto LinkedResources nella collezione LinkedResources, e risolti.
- BaseUri è usato dal lettore di mail per risolvere URL relativi all’interno del corpo, e anche per risolvere URL di Content Link relativi, nella collezione LinkedResources.
Il seguente frammento di codice mostra come impostare il testo alternativo.
Specificare la codifica del corpo mail
Il tipo di contenuto definisce il formato del contenuto email: il set di caratteri. Per esempio, alcuni set di caratteri comuni forniti in java.nio.Charset sono:
- US-ASCII - ASCII a sette bit, noto anche come ISO646-US, o il blocco Basic Latin del set di caratteri Unicode
- ISO-8859-1 - Alfabeto latino ISO n.1, noto anche come ISO-LATIN-1
- UTF-8 - Formato di trasformazione UCS a otto bit
- UTF-16BE - Formato di trasformazione UCS a sedici bit, ordine byte big-endian
- UTF-16LE - Formato di trasformazione UCS a sedici bit, ordine byte little-endian
- UTF-16 - Formato di trasformazione UCS a sedici bit, ordine dei byte identificato da un opzionale marcatore di ordine byte
Aspose.Email usa il BodyEncoding proprietà della classe MailMessage per specificare la codifica del corpo email. Per codificare il corpo di un messaggio email, segui i passaggi indicati di seguito:
- Crea un’istanza della classe MailMessage.
- Specifica il mittente, il destinatario e il corpo HTML dell’email nell’istanza MailMessage.
- Specifica il valore della proprietà BodyEncoding.
- Crea un’istanza di SmtpClient classe e invia l’email usando il metodo Send.
Caratteristiche di MailMessage
Il MailMessage classe rappresenta il contenuto di un messaggio email. Le istanze della classe MailMessage sono usate per costruire un messaggio email che viene trasmesso a un server SMTP per la consegna usando il SmtpClient classe. Questo articolo mostra come usare le funzionalità utilitarie della classe MailMessage per controllare le seguenti caratteristiche email:
- Data e ora - Attraverso la classe MailMessage setDate metodo in cui impostiamo la data e l’ora di un’email.
- Priorità del messaggio - Il MailPriority classe specifica i livelli di priorità per l’invio di un messaggio email. Può essere bassa, normale o alta. La priorità influenza la velocità di trasmissione e la consegna.
- Sensibilità del messaggio - Il MailSensitivity classe specifica cinque livelli di sensibilità.
- Notifica di consegna - Le notifiche di consegna informano il mittente che l’email inviata è stata recapitata nella casella del destinatario.
Per impostazione predefinita, la data è la data effettiva in cui il messaggio è stato inviato, e l’ora è l’ora in cui è stato inviato, come mostrato da Microsoft Outlook. Tuttavia, l’ora reale di consegna dell’email è aggiunta dal server SMTP stesso nell’intestazione mail. Per esempio, sotto c’è un’intestazione mail comune, dove il campo Date è stato impostato usando MailMessage.setDate.
Il frammento di codice sotto illustra come ciascuna delle funzionalità discusse sopra può essere usata.
Richiedere una Conferma di Lettura
Gli esempi di programmazione seguenti mostrano come è possibile richiedere una conferma di lettura. La classe MailMessage DeliveryNotificationOptions La proprietà di enumerazione descrive il opzioni di notifica di consegna per un’email. Per richiedere una conferma di lettura dopo aver inviato un’email, segui questi passaggi:
- Crea un’istanza della classe MailMessage.
- Specifica il mittente, il destinatario e il corpo HTML per l’email nell’istanza MailMessage.
- Specifica le DeliveryNotificationOptions in altre istanze MailMessage.
- Crea un’istanza della classe SmtpClient e invia l’email usando il metodo Send.
Le richieste di ricevuta di lettura potrebbero non essere sempre onorate perché:
- Un client di posta potrebbe non implementare tale funzionalità.
- L’utente finale potrebbe avere quella funzionalità disattivata.
- L’utente finale potrebbe scegliere di non inviarne una.
Il seguente frammento di codice mostra come richiedere una ricevuta di lettura.
Impostare le Intestazioni Email
Le intestazioni email rappresentano uno standard Internet e le RFC definiscono i campi intestazione che sono inclusi nei messaggi email Internet. Un’intestazione email può essere specificata usando il MailMessage classe. I tipi di intestazione comuni sono definiti in HeaderType classe. È una classe sealed che funziona come una normale enumerazione.
Normalmente un’intestazione email contiene questi campi:
- To: Gli indirizzi dei destinatari possono essere specificati nel campo To. I destinatari del campo To sono il pubblico principale del messaggio. Può esserci più di un indirizzo destinatario.
- From: Questo campo mostra l’indirizzo email del mittente del messaggio.
- Cc: Consente agli utenti di inviare un messaggio come "Carbon Copy" o "Courtesy Copy". cioè, il destinatario non è tenuto a rispondere o agire. Tipicamente, il personale di supervisione è notificato tramite CC.
- Bcc: sta per Blind Carbon Copy, si riferisce alla pratica di inviare un messaggio a più destinatari in modo che ciò che ricevono non contenga l’elenco completo dei destinatari. È destinato a notifiche nascoste.
- ReplyTo: Questo campo intestazione indica dove il mittente vuole che vengano inviate le risposte.
- Subject: Titolo, intestazione, oggetto. Spesso usato come indicatore di thread per messaggi di risposta o commento ad altri messaggi.
- Date: Questa intestazione specifica una data (e ora). Normalmente è la data in cui il messaggio è stato composto e inviato.
- XMailer: Informazioni sul software client dell’autore. Esempio: X-Mailer: Aspose.Email XMailer è usato dai client di posta. Diversi client di posta avranno valori XMailer differenti. Il valore XMailer di MS Outlook è Microsoft Office Outlook, Build 11.0.5510. Viene ignorato dal destinatario o dal lettore di email.
Normalmente, un’intestazione email appare così:
Reply-To: reply@reply.com
From: sender@sender.com
To: guangzhou@guangzhoo.com
Subject: test mail
Date: 6 Mar 2006 8:2:2 +0800
X-Mailer: Aspose.Email
Per personalizzare un’intestazione email, segui questi passaggi:
- Crea un’istanza di MailMessage classe.
- Specifica To, From, CC, Bcc, ReplyTo, Subject, Date e XMailer usando un’istanza della classe MailMessage.
- Crea un’istanza di MimeHeader classe e specifica l’intestazione segreta.
- Aggiungi l’intestazione segreta all’istanza MailMessage.
Nel codice riportato di seguito, abbiamo personalizzato un’intestazione email.
Il frammento di codice sopra produce un’intestazione email nel seguente formato. È possibile osservarlo aprendo il file MsgHeaders.msg in Microsoft Outlook e visualizzandone le proprietà.
Reply-To: reply@reply.com
From: sender@sender.com
To: receiver1@receiver.com
CC: receiver2@receiver.com
BCC: receiver3@receiver.com
Subject: test mail
Date: 6 Mar 2006 8:2:2 +0800
X-Mailer: Aspose.Email
secret-header: mystery
Inserire l’Intestazione in una Posizione Specifica
Il Aggiungi il metodo di HeadersCollection inserisce l’intestazione alla fine della collezione. Tuttavia, a volte può essere necessario inserire un’intestazione in una posizione specifica. In tal caso, il metodo Add non sarà d’aiuto. Per ottenere ciò, usa il Insert metodo della HeadersCollection. Se la collezione contiene intestazioni con lo stesso nome, questa intestazione sarà inserita prima delle altre intestazioni con lo stesso nome. Di seguito la firma del metodo Insert e un esempio di codice per l’uso.
Method Signature
HeaderCollection.insert(String name, String value)
Aggiungere Intestazioni Personalizzate all’email
Gli esempi di programmazione seguenti dimostrano come specificare un’intestazione personalizzata in un messaggio email. Un’intestazione email può essere specificata usando la classe MailMessage. Per specificare un’intestazione personalizzata in un messaggio email, segui questi passaggi:
- Crea un’istanza della classe MailMessage.
- Specifica i valori to, from e subject usando l’istanza MailMessage.
- Aggiungi l’intestazione segreta nell’istanza MailMessage.
- Crea un’istanza della classe SmtpClient e invia l’email usando il metodo Send.
Il seguente frammento di codice mostra come aggiungere intestazioni personalizzate all’email.
Firmare le Email con DKIM
Aspose.Email consente di firmare le email con DKIM (DomainKeys Identified Mail). Questo permette a un’organizzazione di assumersi la responsabilità di un messaggio in transito (informazioni su DKIM). DKIM aggiunge una firma digitale alle intestazioni del messaggio email che può essere validata dai destinatari. La chiave pubblica del mittente consente al ricevente di verificare che la firma corrisponda al contenuto del messaggio. La classe MailMessage dKIMSign Il metodo è usato per impostare le informazioni crittografiche e di firma per la firma del messaggio. Il seguente frammento di codice mostra come firmare le email con DKIM.
Eseguire la Fusione di Stampa
Le fusioni di stampa ti aiutano a creare e inviare un batch di messaggi email simili. Il nucleo delle email è lo stesso, ma il contenuto può essere personalizzato. Tipicamente, i dettagli di contatto del destinatario (nome, cognome, azienda, ecc.) vengono usati per personalizzare l’email.
|
| | :- | |Figura: Illustrazione di come funziona una fusione di stampa|
Per eseguire un’unione di stampa (mail merge) con Aspose.Email, segui questi passaggi:
- Crea una funzione con firma nome
- Crea un’istanza di MailMessage classe.
- Specificare il mittente, il destinatario, l’oggetto e il corpo.
- Crea una firma per la conclusione dell’email.
- Crea un’istanza di TemplateRoutine classe e passagli il MailMessage istanza.
- Prendi la firma nel TemplateRoutine istanza.
- Crea un’istanza di DataTable classe.
- Aggiungi le colonne Receipt, FirstName e LastName come fonti dati nella classe DataTable
- Crea un’istanza di DataRow classe
- Specificare l’indirizzo di ricevuta, nome e cognome nell’oggetto DataRow
- Crea un’istanza di MailMessageCollection classe
- Specificare il TemplateRoutine e istanze DataTable nel MailMessageCollection istanza.
- Crea un’istanza di SmtpClient classe e specifica server, porta, nome utente e password
- Invia email usando il SmtpClient metodo class BulkSendAsync
Il codice qui sotto invia un’email a una persona da tre altri.