Javamail

5 respostas
A

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.

5 Respostas

M

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)
      {

      }
A

Valeu pela ajuda

D

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.

A

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

A

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);
}

}

Criado 10 de dezembro de 2004
Ultima resposta 17 de dez. de 2004
Respostas 5
Participantes 3