Problemas no envio de e-mail para gmail pelo javamail

3 respostas
A

Olá pessoal, tudo bem?..Estou tentando enviar um e-mail para o gmail através do javamail, mas não estou conseguindo êxito…pois aparece um erro quando mando rodar o programa. O erro é : javax.mail.MessagingException: 530 5.5.1 Authentication Required i10sm6997567wxd. Abaixo segue o código fonte :

import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

import com.sun.net.ssl.internal.ssl.Provider;

public class Email {

static String[] listaEmailsPara = {"[email removido]", "[email removido]"};
static String assuntoEmail = "Teste de envio de email usando JavaMail.";
static String mensagemEmail = "Conteudo da Mensagem do envio de\n email usando JavaMail";

public void enviaEmail(String para[], String de, String assunto, String mensagem){

java.security.Security.addProvider(new Provider());

Properties props = new Properties();

props.put("mail.transport.protocol","smtp"); // diz que utilizarei um protocolo de seguran�a
props.put("mail.smtp.starttls.enable","true"); // diz que utilizarei o protocolo de seguran�a TLS
props.put("mail.smtp.host","smtp.gmail.com"); // diz que o servidor que estou mandando � o gmail
props.put("mail.smtp.auth","true"); // diz que � necess�rio uma autentica��o
props.put("mail.smtp.user", "[email removido]");
props.put("mail.debug", "true");
props.put("mail.smtp.port", "465");
props.put("mail.smtp.debug", "true");
props.put("mail.mime.charset", "ISO-8859-1");
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.socketFactory.fallback", "false");
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");



Authenticator auth = new Autenticacao();
Session session = Session.getDefaultInstance(props, auth);


session.setDebug(true);
Message msg = new MimeMessage(session);

try {
InternetAddress endDe = new InternetAddress(de);
msg.setFrom(endDe);

InternetAddress[] endsPara = new InternetAddress[listaEmailsPara.length];
for (int i = 0; i < listaEmailsPara.length; i++){
endsPara[i] = new InternetAddress(listaEmailsPara[i]);
System.out.println("");
}

msg.setRecipients(Message.RecipientType.TO, endsPara);
msg.setSubject(assunto);
msg.setContent(mensagem, "text/plain");

Transport transport = session.getTransport("smtp");

msg.saveChanges();
transport.send(msg);
transport.close();



System.out.print("Mensagem Enviada com Sucesso");

} catch (Exception e) {
System.out.println("Erro: " + e);
e.printStackTrace();
}

}

private class Autenticacao extends javax.mail.Authenticator{

public PasswordAuthentication getPasswordAuthentication(){

String user = "[email removido]"; //(ex: "[email removido]")
String pwd = " ";
return new PasswordAuthentication(user, pwd);



}

}

public static void main(String[] args){

Email m = new Email();
m.enviaEmail(listaEmailsPara,"de",assuntoEmail,mensagemEmail); //"de" = quem envia, n�o funciona no gmail (para evitar spans)

}


}

[size=“11”][color=“red”]* Editado: Lembre-se de utilizar BBCode em seus códigos - Carneiro[/color][/size] :joia:

3 Respostas

M

Olá alex_ios, esse tópico resolve seu problema

http://www.portaljava.com/home/modules.php?name=Forums&file=viewtopic&t=28180&highlight=

Abraços

A

Olá MauNunes, blz?..Tentei aqui através deste exemplo do link, mas ele continua dando erro na autenticação. quando vou debugar ele para no seguinte código: at javax.mail.Transport.send. Se tiver mais alguma sugestão…eu agradeço…valeu!!!

P
<blockquote>props.put( “mail.transport.protocol”, “smtp” );

props.put( “mail.smtp.host”, <a href="http://smtp.gmail.com">smtp.gmail.com</a> );	

props.put( “mail.smtp.port”, “465” );		

props.put( “mail.smtp.auth”, “true” );

props.put( “mail.smtp.starttls.enable”, “true” );

props.put( “mail.smtp.socketFactory.class”, “javax.net.ssl.SSLSocketFactory” );

props.put( “mail.smtp.quitwait”, “false” );</blockquote>

eu uso isso ai pra enviar pelo gmail e vinga beleza…
esse ultimo é pra não esperar resposta de envio do servidor.

Criado 24 de julho de 2007
Ultima resposta 24 de jul. de 2007
Respostas 3
Participantes 3