Elipse EnviarEmail

1 resposta
F

Estou tentando fazer um projeto com eclipse que envia email mais estou com dificuldades para achar uma funçao que busca os dados cadastrados no banco de dados para que sejam mandados no email se alguem souber como faz para que seja buscado no banco de dados o nome, idade, codigo do cadastro e mandando por email

package email;

import java.util.Properties;

import javax.mail.<em>;

import javax.mail.internet.</em>;
public class Enviar {

private String remetente;

private String destinatario;

private String smtpHost;

private String porta;

private String assunto;

private Properties propriedades;

private Session sessao;

private static String usuario;

private static String senha;
private static class Autenticacao extends Authenticator {
	public PasswordAuthentication getPasswordAuthentication() {
		return new PasswordAuthentication(usuario, senha);
	}
}

public Enviar(String remetente, String destinatario, String assunto,String smtpHost, String porta, String usuario, String senha) {
	this.remetente = remetente;
	this.destinatario = destinatario;
	this.assunto = assunto;
	this.smtpHost = smtpHost;
	this.porta = porta;
	this.usuario = usuario;
	this.senha = senha;
	this.propriedades = System.getProperties();
	this.propriedades.put("mail.smtp.host", this.smtpHost);
	this.propriedades.put("mail.smtp.auth", "true");
	this.propriedades.put("mail.smtp.port", this.porta);
	this.propriedades.put("mail.smtp.starttls.enable", "true");
	this.propriedades.put("mail.smtp.socketFactory.port", this.porta);
	this.propriedades.put("mail.smtp.socketFactory.fallback", "false");
	this.propriedades.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory");
	Authenticator auth = new Autenticacao();
	this.sessao = Session.getDefaultInstance(this.propriedades, auth);
	try {
		Message mensagem = new MimeMessage(this.sessao);
		mensagem.setSubject(this.assunto);
		mensagem.setFrom(new InternetAddress(this.remetente));
		mensagem.addRecipient(Message.RecipientType.TO,new InternetAddress(this.destinatario));
	[i]	[b]mensagem.setText("corpo da mensagem");Essa e a parte que gostaria de modificar , gostaria que aparece corpo da mensagem queria que fosse buscado no banco de dados todos os dados cadastrados dos clientes e fosse mandado via email , [/b][i][/i][u]
		System.out.println("Enviando mensagem");
		Transport.send(mensagem);
		System.out.println("Mensagem enviada");
	} catch (Exception err) {
		System.out.println("Erro ao enviar mensagem");
	}
}

public static void main(String args[])
{
	String remetente = "email";
	String destinatario = "email";
	String assunto = "oi";
	String smtpHost = "smtp.gmail.com";
	String porta = "465";
	String usuario = "[email removido]";
	String senha = "senha";
	Enviar env = new Enviar(remetente,destinatario,assunto, smtpHost,porta, usuario, senha);
}

}

1 Resposta

edu_fernandes

Pode fazer um método que retorne uma String formatada com esses valores do banco.

Sua aplicação dever algo como um getAll() para pegar todos os registros da base, basta modificar isso um pouco e retornar uma String formatada diretamente para o método setText().

Outra dica que pode ser útil é utilizar a biblioteca Commons da Apache para enviar emails. Particularmente eu prefiro ela pois acredito ser mais simples.

Criado 23 de junho de 2012
Ultima resposta 24 de jun. de 2012
Respostas 1
Participantes 2