Crea e invia e-mail di Outlook Java

Aspose.Email per Java è una potente API di elaborazione della posta elettronica che fornisce tutte le funzionalità di base e avanzate per la gestione della posta elettronica. Ti consente di creare messaggi e-mail di Outlook, leggere e-mail esistenti e convertire messaggi MSG, EML, PST, OST, MBOX e MHT in altri formati dall’interno delle tue applicazioni Java. In questo articolo, illustrerò alcune funzionalità di base ma importanti su come creare e inviare e-mail di Outlook utilizzando Java.

In questo articolo tratterò le seguenti funzionalità di creazione e invio di e-mail:

API di posta elettronica Java - Installazione

Aspose.Email per Java può essere scaricato dalla sezione Download o installato utilizzando le seguenti configurazioni Maven.

Archivio:

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>

Dipendenza:

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-email</artifactId>
    <version>20.3</version>
    <classifier>jdk16</classifier>
</dependency>

Crea messaggi di posta elettronica di Outlook utilizzando Java

Aspose.Email per Java ti consente di creare messaggi e-mail e salvarli nel formato e-mail desiderato, inclusi EML, EMLX, MSG e MHTML. Di seguito sono riportati i passaggi per creare un messaggio di posta elettronica e salvarlo come file.

  • Crea un’istanza della classe MailMessage.
  • Imposta le proprietà del messaggio come Oggetto, Corpo, A, CC, ecc.
  • Aggiungi allegati se necessario.
  • Salva il messaggio e-mail nel formato desiderato utilizzando il metodo MailMessage.save().

L’esempio di codice seguente mostra come creare un messaggio di posta elettronica di Outlook utilizzando Java.

MailMessage message = new MailMessage();

// Imposta l'oggetto del messaggio, il corpo e le informazioni sul mittente
message.setSubject("New message created by Aspose.Email for .NET");
message.setBody("This is the body of the email.");
message.setFrom(new MailAddress("from@domain.com", "Sender Name", false));

// Aggiungi a destinatari e destinatari CC
message.getTo().addItem(new MailAddress("to1@domain.com", "Recipient 1", false));
message.getCC().addItem(new MailAddress("cc1@domain.com", "Recipient 3", false));

// Aggiungi allegati
message.getAttachments().addItem(new Attachment("word.docx"));

// Salva il messaggio nei formati EML, EMLX, MSG e MHTML
message.save("EmailMessage.eml", SaveOptions.getDefaultEml());
message.save("EmailMessage.emlx", SaveOptions.createSaveOptions(MailMessageSaveType.getEmlxFormat()));
message.save("EmailMessage.msg", SaveOptions.getDefaultMsgUnicode());
message.save("EmailMessage.mhtml", SaveOptions.getDefaultMhtml());

Crea un’e-mail con corpo HTML utilizzando Java

Nell’esempio precedente, abbiamo semplicemente creato un’e-mail di testo normale e l’abbiamo salvata come file di posta elettronica. Tuttavia, la maggior parte delle e-mail di oggi vengono create con un corpo HTML per organizzare e presentare bene il contenuto dell’e-mail. In questo caso, i tag HTML vengono utilizzati per specificare il layout dell’e-mail. Vediamo come creare un’e-mail con un corpo HTML utilizzando Aspose.Email per Java.

L’esempio di codice seguente mostra come creare un messaggio di posta elettronica con un corpo HTML utilizzando Java.

MailMessage message = new MailMessage();

// Imposta l'oggetto del messaggio, il corpo e le informazioni sul mittente
message.setSubject("New message created by Aspose.Email for .NET");
message.setHtmlBody("<b>This line is in bold.</b> <br/> <br/> <font color=blue>This line is in blue color</font>");
message.setFrom(new MailAddress("from@domain.com", "Sender Name", false));

// Aggiungi a destinatari e destinatari CC
message.getTo().addItem(new MailAddress("to1@domain.com", "Recipient 1", false));
message.getCC().addItem(new MailAddress("cc1@domain.com", "Recipient 3", false)); 

// Salva il messaggio nei formati EML, EMLX, MSG e MHTML
message.save("EmailMessage.eml", SaveOptions.getDefaultEml()); 

Crea un’e-mail con una codifica particolare utilizzando Java

Aspose.Email per Java consente inoltre di impostare la codifica del testo desiderata per i messaggi di posta elettronica. Lo standard di codifica viene utilizzato per indicare all’applicazione e-mail o al browser come interpretare i caratteri nel corpo dell’e-mail. Di seguito sono riportati i passaggi per creare un’e-mail con un particolare standard di codifica.

L’esempio di codice seguente mostra come creare un’e-mail con un particolare standard di codifica utilizzando Java.

MailMessage message = new MailMessage();

// Imposta l'oggetto del messaggio, il corpo e le informazioni sul mittente
message.setSubject("New message created by Aspose.Email for .NET");
message.setHtmlBody("<b>This line is in bold.</b> <br/> <br/> <font color=blue>This line is in blue color</font>");
message.setFrom(new MailAddress("from@domain.com", "Sender Name", false));

// Specifica la codifica 
message.setBodyEncoding(Charset.forName("US-ASCII"));

// Aggiungi a destinatari e destinatari CC
message.getTo().addItem(new MailAddress("to1@domain.com", "Recipient 1", false));
message.getCC().addItem(new MailAddress("cc1@domain.com", "Recipient 3", false)); 

// Salva il messaggio nei formati EML, EMLX, MSG e MHTML
message.save("EmailMessage.eml", SaveOptions.getDefaultEml()); 

Invia e-mail di Outlook utilizzando Java

Dopo aver creato un’e-mail, puoi inviarla ai suoi destinatari utilizzando Simple Mail Transfer Protocol (SMTP). Di seguito sono riportati i passaggi per inviare un messaggio di posta elettronica utilizzando Aspose.Email per Java.

  • Crea un nuovo messaggio e-mail o caricane uno esistente utilizzando la classe MailMessage.
  • Crea un’istanza della classe SmtpClient e impostane host, nome utente, password e porta.
  • Invia e-mail utilizzando il metodo SmtpClient.send().

L’esempio di codice seguente mostra come inviare un’e-mail tramite client SMTP in Java.

MailMessage message = new MailMessage();

// Imposta l'oggetto del messaggio, il corpo e le informazioni sul mittente
message.setSubject("New message created by Aspose.Email for .NET");
message.setHtmlBody("<b>This line is in bold.</b> <br/> <br/> <font color=blue>This line is in blue color</font>");
message.setFrom(new MailAddress("from@domain.com", "Sender Name", false));

// Specifica la codifica 
message.setBodyEncoding(Charset.forName("US-ASCII"));

// Aggiungi a destinatari e destinatari CC
message.getTo().addItem(new MailAddress("to1@domain.com", "Recipient 1", false));
message.getCC().addItem(new MailAddress("cc1@domain.com", "Recipient 3", false)); 

// Creare un'istanza della classe SmtpClient
SmtpClient client = new SmtpClient();

// Specificare il server dell'host di posta, il nome utente, la password, la porta
client.setHost("smtp.server.com");
client.setUsername("Username");
client.setPassword("Password");
client.setPort(25);

try
{
	// Client.Send invierà questo messaggio
	client.send(message); 
}

catch (Exception ex)
{
	ex.printStackTrace();
}

Invia e-mail in modo asincrono utilizzando Java

Aspose.Email per Java ti consente anche di inviare e-mail in modo asincrono. Per questo, puoi usare il metodo SmtpClient.beginSend(). L’esempio di codice seguente mostra come inviare e-mail in modo asincrono utilizzando Java.

MailMessage message = new MailMessage();

// Imposta l'oggetto del messaggio, il corpo e le informazioni sul mittente
message.setSubject("New message created by Aspose.Email for .NET");
message.setHtmlBody("<b>This line is in bold.</b> <br/> <br/> <font color=blue>This line is in blue color</font>");
message.setFrom(new MailAddress("from@domain.com", "Sender Name", false));

// Specifica la codifica 
message.setBodyEncoding(Charset.forName("US-ASCII"));

// Aggiungi a destinatari e destinatari CC
message.getTo().addItem(new MailAddress("to1@domain.com", "Recipient 1", false));
message.getCC().addItem(new MailAddress("cc1@domain.com", "Recipient 3", false)); 

// Creare un'istanza della classe SmtpClient
SmtpClient client = new SmtpClient();

// Specificare il server dell'host di posta, il nome utente, la password, la porta
client.setHost("smtp.server.com");
client.setUsername("Username");
client.setPassword("Password");
client.setPort(25);

try
{
	// Client.beginSend invierà questo messaggio
	client.beginSend(message); 
}

catch (Exception ex)
{
	ex.printStackTrace();
}

Invia e-mail con una conferma di lettura utilizzando Java

Puoi anche aggiungere una richiesta di conferma di lettura ai messaggi di posta elettronica. Questa funzione ti consente di ricevere una notifica dopo che l’e-mail è stata ricevuta. Di seguito sono riportati i passaggi per creare e inviare un messaggio di posta elettronica contenente una richiesta di conferma di lettura.

L’esempio di codice seguente mostra come inviare un’e-mail contenente una conferma di lettura utilizzando Java.

MailMessage message = new MailMessage();

// Imposta l'oggetto del messaggio, il corpo e le informazioni sul mittente
message.setSubject("New message created by Aspose.Email for .NET");
message.setHtmlBody("<b>This line is in bold.</b> <br/> <br/> <font color=blue>This line is in blue color</font>");
message.setFrom(new MailAddress("from@domain.com", "Sender Name", false));

// Imposta le opzioni di notifica
message.setDeliveryNotificationOptions(DeliveryNotificationOptions.OnSuccess);
message.getHeaders().add("Return-Receipt-To", "from@domain.com");
message.getHeaders().add("Disposition-Notification-To", "from@domain.com"); 

// Aggiungi a destinatari 
message.getTo().addItem(new MailAddress("to1@domain.com", "Recipient 1", false)); 

// Creare un'istanza della classe SmtpClient
SmtpClient client = new SmtpClient();

// Specificare il server dell'host di posta, il nome utente, la password, la porta
client.setHost("smtp.server.com");
client.setUsername("Username");
client.setPassword("Password");
client.setPort(25);

try
{
	// Client.Send invierà questo messaggio
	client.send(message);
}

catch (Exception ex)
{
	ex.printStackTrace();
}

Invia e-mail in blocco utilizzando Java

Potrebbe verificarsi il caso in cui è necessario inviare un grosso numero di e-mail diverse. In tal caso, puoi semplicemente aggiungere tutti i messaggi di posta elettronica a un oggetto MailMessageCollection e passarlo al client SMTP per l’invio. L’esempio di codice seguente mostra come inviare una grande quantità di e-mail utilizzando Java.

// Crea istanze della classe MailMessage e specifica A, Da, Oggetto e Messaggio
MailMessage message1 = new MailMessage("msg1@from.com", "msg1@to.com", "Subject1", "message1, how are you?");
MailMessage message2 = new MailMessage("msg1@from.com", "msg2@to.com", "Subject2", "message2, how are you?");
MailMessage message3 = new MailMessage("msg1@from.com", "msg3@to.com", "Subject3", "message3, how are you?");

// Crea un'istanza di MailMessageCollection e aggiungi messaggi di posta elettronica ad essa
MailMessageCollection manyMsg = new MailMessageCollection();
manyMsg.addItem(message1);
manyMsg.addItem(message2);
manyMsg.addItem(message3);		

// Crea SmtpClient e specifica server, porta, nome utente e password
SmtpClient client = new SmtpClient("mail.server.com", 25, "Username", "Password");
 
try
{  
	// Manda messaggi
	client.send(manyMsg); 
}
catch (Exception ex)
{
	  ex.printStackTrace();
}

Dimostrazioni dal vivo

Conclusione

In questo post, ti ho mostrato come creare messaggi di posta elettronica di Outlook e salvarli nei formati EML, MSG e MTH utilizzando Java. Inoltre, vengono discussi anche diversi modi di inviare e-mail in Java utilizzando il client STMP. Puoi saperne di più sulla Java Email Library di Aspose utilizzando la documentazione.

Guarda anche