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:
- Criar mensagem de email do Outlook usando Java
- Definir corpo HTML para e-mail usando Java
- Crie um email com uma codificação específica usando Java
- Enviar e-mails do Outlook usando Java
- Envie emails de forma assíncrona usando Java
- Enviar um e-mail com confirmação de leitura usando Java
- Envie e-mails em massa usando Java
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.
- Use a classe MailMessage para criar uma nova mensagem de e-mail.
- Defina Assunto, Para, CC e outras propriedades.
- Defina o corpo do email usando o método MailMessage.setHtmlBody(string).
- Salve a mensagem de e-mail usando o método MailMessage.save().
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.
- Crie um objeto da classe MailMessage.
- Defina as propriedades do email, como Assunto, Para, CC, etc.
- Defina o padrão de codificação usando o método MailMessage.setBodyEncoding().
- Crie e salve o e-mail usando o método MailMessage.save().
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.
- Crie uma nova mensagem de e-mail usando a classe MailMessage.
- Defina a opção de notificação de entrega usando o método MailMessage.setDeliveryNotificationOptions().
- Adicione informações de recibo nos cabeçalhos de e-mail.
- Use a classe SmtpClient para enviar o email.
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.