Alguem tem um codigo do mais simples possivel para enviar um email, direto, usando javamail? só setando as coisas direto no codigo, sem pedir nada pro usuario no jsp.
Javamail
5 Respostas
Seja bem vindo ao PJ esse eh um codigo q precisa pequenas modificacoes mas da pra vc ter uma boa base…qquer coisa posta
<%@ page import="java.text.*"%>
<%@ page import="java.util.*"%>
<%@ page import="java.util.Properties"%>
<%@ page import="java.io.*"%>
<%@ page import="javax.activation.*"%>
<%@ page import="java.sql.*"%>
<%@ page import="java.text.*"%>
<%@ page import="java.util.Random"%>
<%@ page import="javax.activation.*"%>
<%@ page import="javax.mail.internet.*"%>
<%@ page import="java.util.Date"%>
<%@ page import="javax.mail.*"%>
<%
boolean erro=false;
String mailBody="";
String smtpServer = "seuservidor";
String mailSubject = "assunto";
String fromMail = "remetente";
String fromName = "remetente";
String toMail = request.getParameter("email");
String toName = request.getParameter("nome");
mailBody="corpo do email";
try
{
// Configura a sessão
//Properties mailProps = System.getProperties();
Properties mailProps = new Properties();
mailProps.put("mail.smtp.host",smtpServer);
Session mailSession = Session.getInstance(mailProps, null);
// Configuração da mensagem
Message message = new MimeMessage (mailSession);
message.setFrom( new InternetAddress(fromMail,fromName) );
// Configuração do Destinatario
message.setRecipient(Message.RecipientType.TO, new
InternetAddress(toMail,toName) );
// Configuraçao do cabecalho do email
message.setSentDate(new Date());
message.setSubject(mailSubject);
mailBody += "";
message.setContent(message.toString(),"text/html");
message.setDataHandler(new DataHandler(mailBody,"text/html"));
// Envia a mensagem
Transport.send(message);
}
catch (Exception e)
{
}
Valeu pela ajuda
Opa AleGFC
Seja bem vindo ao pj, eu tive muita dificuldades quando estava tentando implementar essa função javamail, ai achei este link:
muito interessante ele comenta os passo a passo e o que é necessário para rodar a aplicação!
Espero que seja util.
O problema eh o seguinte, eu preciso de uma classe unica que eu seto os atributos q forem necessarios e chamo um metodo send nessa classe q jah manda o email. Com um servidor unico e estatico de email com senha e id, e endereco from q nao mudam. Dai eu queria soh passa os enderecos to, bcc, cc, a mensagem e o subject
Eh o seguinte, eu fiz uma classezinha que eh chamada no servlet pra mandar um email, eh mto simples soh que esta pegando uma excecao NULL que eu nao consigo entender o porque e nem como consertar, o que tem de errado no meu codigo? tem como alguem me ajudar?
A parte que esta sublinhada e em negreito eu testei com e sem ela, que eh a autenticacao. Com ela, a excecao que aparece eh simplesmente NULL como disse acima, e sem ela, da erro 530 dizendo q o smtp precisa de autenticacao… travei aqui e nao sai mais nada…
meu codigo eh este:
package utils;
import <a href="http://java.io">java.io</a>.<em>;
import javax.activation.</em>;
import java.util.<em>;
import javax.mail.</em>;
import javax.mail.internet.<em>;
import debug.</em>;
/**
-
@author alexandre
-
To change the template for this generated type comment go to
-
Window>Preferences>Java>Code Generation>Code and Comments
*/
public class CEmail {private String to; private String from; private String cc; private String bcc; private String subject; private String message;
/**
- Construtor da classe
- @author alexandre
*/ public CEmail(){ }/**
- Destrutor da classe
- @author alexandre
*/
public void destroy(){}
/**
- Seta atributos da classe
- @author alexandre
*/
public CEmail(String to, String from, String cc, String bcc, String subject, String message){this.to = to; this.from = from; this.cc = cc; this.bcc = bcc; this.subject = subject; this.message = message;
}
public boolean send(){ try { Properties mailProps = new Properties(); mailProps.put(“mail.smtp.host”, “smtp.mail.yahoo.com.br”);
SimpleAuth auth = null;
// Autenticação para o mail server
auth = new SimpleAuth(“LOGIN-YAHOO”, “SENHA-YAHOO”);
mailProps.put(“mail.smtp.auth”, “true”);
mailProps.put(“mail.user”, “USER-YAHOO”);
mailProps.put(“mail.pwd”, “SENHA-YAHOO”);
mailProps.put(“mail.from”, this.from);
mailProps.put(“mail.to”, this.to);
Session mailSession = Session.getInstance(mailProps, [b][u]auth[/u][/b]);
mailSession.setDebug(false);
MimeMessage email = new MimeMessage(mailSession);
email.setRecipients( Message.RecipientType.TO, InternetAddress.parse(this.to) );
if (this.cc.length() != 0) {
email.setRecipients( Message.RecipientType.CC, InternetAddress.parse(this.cc) );
}
if (this.bcc.length() != 0) {
email.setRecipients( Message.RecipientType.BCC, InternetAddress.parse(this.bcc) );
}
email.setFrom( new InternetAddress(this.from));
email.setSubject(this.subject);
email.setContent( this.message, "text/plain" );
email.setDataHandler(new DataHandler(this.message,"text/plain"));
Transport tr = mailSession.getTransport("smtp");
tr.connect("smtp.mail.yahoo.com.br", "LOGIN-YAHOO", "SENHA-YAHOO");
email.saveChanges(); // don't forget this
tr.sendMessage(email, email.getAllRecipients());
tr.close();
} catch (MessagingException e) {
return false;
}
return true;
}
public boolean send(String to, String cc, String bcc, String from, String subject, String text) throws Exception {
CEmail msg = new CEmail(to, from, cc, bcc, subject, message);
boolean mandou = this.send();
return mandou;
}
}
A classe SimpleAuth eh esta:
class SimpleAuth extends Authenticator {
public String username = null;
public String password = null;
public SimpleAuth(String user, String pwd) {
username = user;
password = pwd;
}
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username,password);
}
}