Struts - Enviar email com dados de formulário

0 respostas
E

Olá.

Estou tentando fazer um formulário simples que ao clicar no botão “Envia Dados”, envie os dados no corpo de um email e estou tendo problemas. Alguém poderia me ajudar?

Ocorre o seguinte erro:

java.lang.NullPointerException
com.sun.mail.handlers.text_plain.writeTo(text_plain.java:140)

Seguem os códigos:

imports

public class InscricaoForm extends ActionForm {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private Inscricao inscricao = new Inscricao();

	public Inscricao getInscricao() {
		return inscricao;
	}

	public void setInscricao(Inscricao inscricao) {
		this.inscricao = inscricao;
	}
}
imports

public class InscricaoAction extends Action {
	public ActionForward execute(ActionMapping map, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		InscricaoForm formulario = ((InscricaoForm) form);
		Inscricao inscricao = formulario.getInscricao();
		EnviaEmail enviaemail = new EnviaEmail();
		enviaemail.processaEmail(inscricao); 
		return map.findForward("sucesso");
	}
}
public class EnviaEmail {
	
	String emailDestinatario="xxxxxxx";
	String nomeDestinatario="xxxxxxx";
	String emailRemetente="[email removido]";
	String nomeRemetente="xxxxxxx";
	String assuntoEmail="Teste de email com Java";
	Inscricao corpoEmail;
		
	public void processaEmail(Inscricao inscricao) throws Exception{
		inscricao=this.corpoEmail;
		enviarEmail(emailDestinatario, nomeDestinatario, emailRemetente, nomeRemetente, assuntoEmail, corpoEmail);
	}
	
	public static void enviarEmail(String emailDest, String nomeDest, String emailRemet, String nomeRemet, String assunto, Inscricao corpo) throws Exception {
		Properties props = System.getProperties();
		props.put("mail.smtp.host", "endereco_smtp");
		props.put("mail.smtp.auth", "true");
		Authenticator auth = new Authenticator() {
			public PasswordAuthentication getPasswordAuthentication() {
				return new PasswordAuthentication("conta", "senha");
			}
		};
		Session session = Session.getInstance(props, auth);
		MimeMessage message = new MimeMessage(session);
		message.setFrom(new InternetAddress(emailRemet, nomeRemet));
		message.addRecipient(Message.RecipientType.TO,
		new InternetAddress(emailDest, nomeDest));
		message.setSubject(assunto);
		message.setContent(corpo, "text/plain");

		Transport.send(message);
		
		System.out.println("Mensagem enviada com sucesso.");
	}
}

Obrigado.
Everton

Criado 7 de julho de 2008
Respostas 0
Participantes 1