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.
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 java.io.;
import javax.activation.;
import java.util.;
import javax.mail.;
import javax.mail.internet.;
import debug.;
/**
-
@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);
}
}