Java Mail API

2 respostas
U
Pessoal, estou tentando utilizar a Java Mail API para enviar e-mails através do meu site. Porém não estou muito familiarizado com isso. a página a seguir é a minha enviar.jsp e sempre dá o erro "Impossivel enviar e-mail". Alguém pode me ajudar com esse problema? (Se entendi bem é um problema com o mailServer).
<html>
<body>
<%@ page import="crytech.email.Email"%>
<%@ page import="javax.mail.internet.AddressException"%>
<%@ page import="javax.mail.MessagingException"%>

<jsp:useBean id="email" scope="session" class="crytech.email.Email"/>
<%
try {
String mailServer = "smtp.gmail.com";
String assunto    = request.getParameter("assunto");
String para       = request.getParameter("selecao");
String de         = request.getParameter("email");
String mensagem   = request.getParameter("texto");
email.sendSimpleMail(mailServer, assunto, para, de, mensagem);
%>
<p>Email enviado com Sucesso !!!</p>
<%
}
catch (AddressException e) {
%>
<p>Endereço de Email inválido</p>
<%
}
catch (MessagingException e) {
%>
<p>Impossível enviar o email.</p>
<%}%>
</body>
</html>

2 Respostas

panthovillas

se não me engano vc tem q setar que o servidor usa SSL… pra o gmail precisa

U
public void sendMessage(String recipients[], String subject, String message, String from) 
		throws MessagingException 
		{
			Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
			//com essa flag aqui ele imprimira todos os dados da conexão e do envio,
			//setar isso para false se quiser que rode no silent mode.
			boolean debug = false;
			Properties props = new Properties();
			props.put("mail.smtp.host", "seuservidorsmtp");
			props.put("mail.smtp.auth", "true");
			props.put("mail.debug", "false");
			props.put("mail.smtp.port", porta);
			props.put("mail.smtp.socketFactory.port", porta);			
			props.put("mail.smtp.socketFactory.fallback", "false");
	
			Session session = Session.getDefaultInstance(props,	new javax.mail.Authenticator() 
			{
			   //Aqui o authenticator, poderia ser uma classe separada também:
			   protected PasswordAuthentication getPasswordAuthentication() {
			   return new PasswordAuthentication("seuemail", "suasenha");
			}});
			session.setDebug(debug);	
			Message msg = new MimeMessage(session);
			InternetAddress addressFrom = new InternetAddress(from);
			msg.setFrom(addressFrom);	
			InternetAddress[] addressTo = new InternetAddress[recipients.length];
			for (int i = 0; i < recipients.length; i++) 
			{
			    addressTo[i] = new InternetAddress(recipients[i]);
			}
			msg.setRecipients(Message.RecipientType.TO, addressTo);
			// Setting the Subject and Content Type
			msg.setSubject(subject);
			msg.setContent(message, "text/plain");
			Transport.send(msg);
		}
Criado 23 de abril de 2009
Ultima resposta 23 de abr. de 2009
Respostas 2
Participantes 2