Criar e enviar e-mails do Outlook Java

Aspose.Email for Java é uma poderosa API de processamento de e-mail que fornece todos os recursos básicos e avançados para gerenciamento de e-mail. Ele permite que você crie mensagens de e-mail do Outlook, leia e-mails existentes e converta mensagens MSG, EML, PST, OST, MBOX e MHT para outros formatos de seus aplicativos Java. Neste artigo, demonstrarei alguns recursos básicos, porém importantes, de como criar e enviar e-mails do Outlook usando Java.

Vou abordar os seguintes recursos de criação e envio de e-mails neste artigo:

API de e-mail Java - Instalação

Aspose.Email para Java pode ser baixado da seção Downloads ou instalado usando as seguintes configurações do Maven.

Repositório:

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

Dependência:

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

Criar mensagens de email do Outlook usando Java

Aspose.Email para Java permite criar mensagens de e-mail e salvá-las no formato de e-mail desejado, incluindo EML, EMLX, MSG e MHTML. A seguir estão as etapas para criar uma mensagem de email e salvá-la como um arquivo.

  • Crie uma instância da classe MailMessage.
  • Defina as propriedades da mensagem, como Assunto, Corpo, Para, CC, etc.
  • Adicione anexos, se necessário.
  • Salve a mensagem de e-mail no formato desejado usando o método MailMessage.save().

O exemplo de código a seguir mostra como criar uma mensagem de email do Outlook usando Java.

MailMessage message = new MailMessage();

// Definir assunto da mensagem, corpo e informações do remetente
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));

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

// Adicionar Anexos
message.getAttachments().addItem(new Attachment("word.docx"));

// Salvar mensagem nos formatos 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());

Criar um e-mail com corpo HTML usando Java

No exemplo anterior, simplesmente criamos um e-mail de texto simples e o salvamos como um arquivo de e-mail. No entanto, a maioria dos e-mails hoje são criados com corpo HTML para organizar e apresentar bem o conteúdo do e-mail. Nesse caso, as tags HTML são usadas para especificar o layout do email. Vamos ver como criar um email com um corpo HTML usando Aspose.Email para Java.

A amostra de código a seguir mostra como criar um email com um corpo HTML usando Java.

MailMessage message = new MailMessage();

// Definir assunto da mensagem, corpo e informações do remetente
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));

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

// Salvar mensagem nos formatos EML, EMLX, MSG e MHTML
message.save("EmailMessage.eml", SaveOptions.getDefaultEml()); 

Criar um e-mail com uma codificação específica usando Java

Aspose.Email para Java também permite que você defina a codificação de texto desejada para as mensagens de e-mail. O padrão de codificação é usado para informar ao aplicativo de e-mail ou ao navegador sobre como interpretar os caracteres no corpo do e-mail. A seguir estão as etapas para criar um email com um padrão de codificação específico.

O exemplo de código a seguir mostra como criar um email com um padrão de codificação específico usando Java.

MailMessage message = new MailMessage();

// Definir assunto da mensagem, corpo e informações do remetente
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));

// Especificar codificação 
message.setBodyEncoding(Charset.forName("US-ASCII"));

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

// Salvar mensagem nos formatos EML, EMLX, MSG e MHTML
message.save("EmailMessage.eml", SaveOptions.getDefaultEml()); 

Enviar e-mails do Outlook usando Java

Depois de criar um e-mail, você pode enviá-lo para seus destinatários usando o Simple Mail Transfer Protocol (SMTP). A seguir estão as etapas para enviar uma mensagem de e-mail usando Aspose.Email para Java.

  • Crie uma nova mensagem de e-mail ou carregue uma existente usando a classe MailMessage.
  • Crie uma instância da classe SmtpClient e defina seu host, nome de usuário, senha e porta.
  • Envie e-mail usando o método SmtpClient.send().

O exemplo de código a seguir mostra como enviar um email por meio do cliente SMTP em Java.

MailMessage message = new MailMessage();

// Definir assunto da mensagem, corpo e informações do remetente
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));

// Especificar codificação 
message.setBodyEncoding(Charset.forName("US-ASCII"));

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

// Crie uma instância da classe SmtpClient
SmtpClient client = new SmtpClient();

// Especifique seu servidor host de correspondência, nome de usuário, senha, porta
client.setHost("smtp.server.com");
client.setUsername("Username");
client.setPassword("Password");
client.setPort(25);

try
{
	// Client.Send enviará esta mensagem
	client.send(message); 
}

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

Enviar e-mails de forma assíncrona usando Java

Aspose.Email para Java também permite enviar emails de forma assíncrona. Para isso, você pode usar o método SmtpClient.beginSend(). O exemplo de código a seguir mostra como enviar emails de forma assíncrona usando Java.

MailMessage message = new MailMessage();

// Definir assunto da mensagem, corpo e informações do remetente
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));

// Especificar codificação 
message.setBodyEncoding(Charset.forName("US-ASCII"));

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

// Crie uma instância da classe SmtpClient
SmtpClient client = new SmtpClient();

// Especifique seu servidor host de correspondência, nome de usuário, senha, porta
client.setHost("smtp.server.com");
client.setUsername("Username");
client.setPassword("Password");
client.setPort(25);

try
{
	// Client.beginSend enviará esta mensagem
	client.beginSend(message); 
}

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

Enviar e-mails com recibo de leitura usando Java

Você também pode adicionar uma solicitação de confirmação de leitura às mensagens de email. Esse recurso permite que você receba uma notificação após o recebimento do e-mail. A seguir estão as etapas para criar e enviar uma mensagem de email contendo uma solicitação de confirmação de leitura.

O exemplo de código a seguir mostra como enviar um email contendo uma confirmação de leitura usando Java.

MailMessage message = new MailMessage();

// Definir assunto da mensagem, corpo e informações do remetente
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));

// Definir opções de notificação
message.setDeliveryNotificationOptions(DeliveryNotificationOptions.OnSuccess);
message.getHeaders().add("Return-Receipt-To", "from@domain.com");
message.getHeaders().add("Disposition-Notification-To", "from@domain.com"); 

// Adicionar aos destinatários 
message.getTo().addItem(new MailAddress("to1@domain.com", "Recipient 1", false)); 

// Crie uma instância da classe SmtpClient
SmtpClient client = new SmtpClient();

// Especifique seu servidor host de correspondência, nome de usuário, senha, porta
client.setHost("smtp.server.com");
client.setUsername("Username");
client.setPassword("Password");
client.setPort(25);

try
{
	// Client.Send enviará esta mensagem
	client.send(message);
}

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

Enviar e-mails em massa usando Java

Pode ser o caso de você precisar enviar uma grande quantidade de e-mails diferentes. Nesse caso, você pode simplesmente adicionar todas as mensagens de e-mail a um objeto MailMessageCollection e passá-las para o cliente SMTP para envio. O exemplo de código a seguir mostra como enviar uma grande quantidade de emails usando Java.

// Crie instâncias da classe MailMessage e especifique To, From, Subject e Message
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?");

// Crie uma instância de MailMessageCollection e adicione mensagens de email a ela
MailMessageCollection manyMsg = new MailMessageCollection();
manyMsg.addItem(message1);
manyMsg.addItem(message2);
manyMsg.addItem(message3);		

// Crie SmtpClient e especifique servidor, porta, nome de usuário e senha
SmtpClient client = new SmtpClient("mail.server.com", 25, "Username", "Password");
 
try
{  
	// Enviar mensagens
	client.send(manyMsg); 
}
catch (Exception ex)
{
	  ex.printStackTrace();
}

Demonstrações ao vivo

Conclusão

Neste post, mostrei como criar mensagens de e-mail do Outlook e salvá-las nos formatos EML, MSG e MTH usando Java. Além disso, também são discutidas diferentes formas de envio de e-mails em Java usando o cliente STMP. Você pode aprender mais sobre a Java Email Library do Aspose usando a documentação.

Veja também