Enviar email com Java

Email

O poder do Java é muito grande, você poderia desenvolver um webmail em Java. Existem até exemplos na internet de como se fazer isso, não é o objetivo deste post, mas sim dar uma introdução básica de como Enviar Email com Java.

Importante: Antes de sair copiando o código, colando no seu projeto e testando, preste atenção nessas poucas observações, entenda primeiro e faça depois, garanto que você terminará mais rápido do que se tivesse apenas usado a técnica do: CTRL+C CTRL+V.

Primeiro de tudo: você precisará da API JavaMail que poderá ser baixada aqui: JavaMail

Endereço SMTP: mude para o domínio do seu email (exemplo: smtp.gmail.com), caso necessário pergunte ao administrador do servidor de email o endereço smtp:

props.put("mail.smtp.host", "mail.seudominio.com.br");

Tipo da mensagem email: nesse caso foi definido como html:

mensagem.setContent(msg, "text/html;charset=ISO-8859-1");

Debug: importante para verificar erros e ver se ocorreu tudo certo:

session.setDebug(true);

Múltiplos endereços: o Javamail permite o envio para mais de um destinatário ao mesmo tempo, mas, como aqui a ideia é enviar para apenas um, ficou assim:

Address to[] = new InternetAddress[1];
to[0] = new InternetAddress(para);

Código completo:

package br.com.luiztaborda.blog.email;

import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;

public class EmailSimples {

	public static void enviarEmail(
		String de, String para, String assunto, String msg)
		throws MessagingException {

		Properties props = System.getProperties();
		// importante: Setando o host smtp
		props.put("mail.transport.protocol", "smtp");
		props.put("mail.smtp.host", "mail.seudominio.com.br");

		// criando algumas propriedades e pegando a Session default
		Session session = Session.getDefaultInstance(props, null);
		// opcional: habilitando o debug
		session.setDebug(true);

		// criando a mensagem
		Message mensagem = new MimeMessage(session);

		// remente
		InternetAddress addressFrom = new InternetAddress(de);

		Address to[] = new InternetAddress[1];
		mensagem.setFrom(addressFrom);
		mensagem.setSubject(assunto);
		mensagem.setContent(msg, "text/html;charset=ISO-8859-1");
		// para texto normal use "text/plain;charset=ISO-8859-1"
		// você pode mudar o charset também

		to[0] = new InternetAddress(para);
		mensagem.setRecipients(Message.RecipientType.TO, to);
		Transport.send(mensagem);
	}

	public static void main(String[] args) throws MessagingException {

		EmailSimples.enviarEmail(
		"seuemail@seudominio.com.br", "destino@dominio.com.br",
		"assunto", "corpo da mensagem");
	}

}

Enquanto eu escrevia este post surgiu a necessidade aqui na empresa de fazer autenticação para enviar os emails nos nossos sistemas, para não misturar as coisas neste post manterei como está(sem a necessidade de autenticar), porem no próximo post farei já com a autenticação e verão que a diferença é muito pouca, é só prestar atenção.

E o post sobre Enviar email autenticado com Java saiu, confiram

Um grande abraço a todos, agente se “fala”…

depois
Blog Widget by LinkWithin
 

One Response to “Enviar email com Java”

  1. 9:47 am on setembro 28 2009, Kecioapope said:

    [url=http://uebd.in/backgammon-tiled-wallpaper/]k750 backgammon[/url] [url=http://uebd.in/queen-elizabeth-iis-jewels/]queen of england’s jewels[/url] [url=http://uebd.in/poker-hand-rank-order-soh/]holdem hand rank[/url] [url=http://uebd.in/european-roulette-table/]european roulette strategy[/url] [url=http://uebd.in/deuces-wild-techniques/]deuces wild poker free[/url]

Leave a Reply