ow vlw pela ajuda kra…mas ainda não consegui…pelo que eu vi o usuario precisaria passar o login e a senha para me mandar a mensagem…isso n seria legal e pratico…entao eu resolvi colocar o meu email enviando mensagem para ele mesmo…mas o meu email é do yahoo e eu não sei direito qual é a porta utilizada pelo yahoo…dei uma pesquisada e achei uma porta 587…tentei assim mas não deu certo…
// FAZENDO CHAMADA DA classe sendEmail
SendEmail email = new SendEmail();
String status = email.Mail("eu@yahoo.com.br", "eu@yahoo.com.br", "teste email", "deu certo", "eu@yahoo.com.br", "123");
[code] import java.util.Properties;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;
public class SendEmail{
private String mailSMTPServer;
private String mailSMTPServerPort;
/*
* quando instanciar um Objeto ja sera atribuido o servidor SMTP do GMAIL
* e a porta usada por ele
*/
public SendEmail() { //Para o yahoo
mailSMTPServer = "smtp.yahoo.com.br";
mailSMTPServerPort = "587";
}
/*
* caso queira mudar o servidor e a porta, so enviar para o contrutor
* os valor como string
*/
public SendEmail(String mailSMTPServer, String mailSMTPServerPort) { //Para outro Servidor
this.mailSMTPServer = mailSMTPServer;
this.mailSMTPServerPort = mailSMTPServerPort;
}
public String Mail(String from, String to, String subject, String message, String login, String senha) {
Properties props = new Properties();
props.put("mail.transport.protocol", "smtp"); //define protocolo de envio como SMTP
props.put("mail.smtp.starttls.enable","true");
props.put("mail.smtp.host", mailSMTPServer); //server SMTP do GMAIL
props.put("mail.smtp.auth", "true"); //ativa autenticacao
props.put("mail.smtp.user", from); //usuario ou seja, a conta que esta enviando o email (tem que ser do GMAIL)
props.put("mail.debug", "true");
props.put("mail.smtp.port", mailSMTPServerPort); //porta
props.put("mail.smtp.socketFactory.port", mailSMTPServerPort); //mesma porta para o socket
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.socketFactory.fallback", "false");
//Cria um autenticador que sera usado a seguir
SimpleAuth auth = null;
auth = new SimpleAuth (login, senha);
//Session - objeto que ira realizar a conexão com o servidor
/*Como há necessidade de autenticação é criada uma autenticacao que
* é responsavel por solicitar e retornar o usuário e senha para
* autenticação */
Session session = Session.getDefaultInstance(props, auth);
session.setDebug(true); //Habilita o LOG das ações executadas durante o envio do email
//Objeto que contém a mensagem
Message msg = new MimeMessage(session);
try {
//Setando o destinatário
msg.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
//Setando a origem do email
msg.setFrom(new InternetAddress(from));
//Setando o assunto
msg.setSubject(subject);
//Setando o conteúdo/corpo do email
msg.setContent(message,"text/plain");
} catch (Exception e) {
return ("erro ao completar mensagem!");
}
//Objeto encarregado de enviar os dados para o email
Transport tr;
try {
tr = session.getTransport("smtp"); //define smtp para transporte
/*
* 1 - define o servidor smtp
* 2 - seu nome de usuario do gmail
* 3 - sua senha do gmail
*/
tr.connect(mailSMTPServer, login, senha);
msg.saveChanges(); // don't forget this
//envio da mensagem
tr.sendMessage(msg, msg.getAllRecipients());
tr.close();
return("mensagem enviada com sucesso");
} catch (Exception e) {
return ("erro ao enviar"); }
}
public class SimpleAuth extends Authenticator {
public String username = null;
public String password = null;
public SimpleAuth(String user, String pwd) {
username = user;
password = pwd;
}
@Override
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(this.username, this.password);
}
}//fim da classe SimpleAuth
}//fim da classe principal[/code]
eae…alguem sabe pq n envia o email?