Erro de Autenticação - JAVAMAIL

1 resposta
S

Galera, olha a classe:

public class Mail

{

public void sendMail(String IP)

{

/*

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

* System.setProperty(“mail.smtp.port”, “465”); // Default 25

* System.setProperty(“mail.smtp.auth”, “true”);

*/
Authenticator auth = null;
    auth= new Authenticator() {

        protected PasswordAuthentication getPasswordAuthentication() {

            return new PasswordAuthentication("[email removido]", "xxx");
        }
    };

	Properties p = new Properties();
	p.put("mail.smtp.host", "smtp.mail.yahoo.com.br");
	p.put("mail.smtp.auth", "true");
	p.put("mail.smtp.port", "465"); // Default 25
	p.put("mail.user", "[email removido]");
	p.put("mail.debug", "true");
	p.put("mail.smtp.debug", "true");
	p.put("mail.mime.charset", "ISO-8859-1");
	p.put("mail.smtp.starttls.enable", "true");
	p.put("mail.smtp.socketFactory.port", "465");
	p.put("mail.smtp.socketFactory.fallback", "false");
	p.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");

	Session session = Session.getInstance(p, auth);
	MimeMessage msg = new MimeMessage(session);

	try
	{
		// "de" e "para"!!
		msg.setFrom(new InternetAddress("[email removido]"));
		msg.setRecipient(Message.RecipientType.TO, new InternetAddress("[email removido]"));

		// nao esqueca da data!
		// ou ira 31/12/1969 !!!
		msg.setSentDate(new Date());

		msg.setText("Acesso Site");

		StringBuffer assunto = new StringBuffer("");

		SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm");

		assunto.append("***************************************************************\n\n\n");
		assunto.append("Acesso ao site em: " + sdf.format(new Date()) + " do seguinte IP: " + IP + "\n\n\n");
		assunto.append("***************************************************************\n\n\n");

		msg.setSubject(assunto.toString());

		// evniando mensagem (tentando)
		System.out.println("enviando");
		Transport.send(msg);
		System.out.println("enviou");
	} catch (AddressException e)
	{
		e.printStackTrace();
		// nunca deixe catches vazios!
	} catch (MessagingException e)
	{
		e.printStackTrace();
		// nunca deixe catches vazios!
	}

}

Olha o erro:

DEBUG: JavaMail version 1.4ea

DEBUG: java.io.FileNotFoundException: C:\Arquivos de programas\EasyEclipse Desktop Java 1.2.1\jre\jre\lib\javamail.providers (O sistema não pode encontrar o arquivo especificado)

DEBUG: URL jar:file:/C:/Documents%20and%20Settings/rodrigo/Desktop/Nova%20pasta/lib/imap.jar!/META-INF/javamail.providers

DEBUG: successfully loaded resource: jar:file:/C:/Documents%20and%20Settings/rodrigo/Desktop/Nova%20pasta/lib/imap.jar!/META-INF/javamail.providers

DEBUG: URL jar:file:/C:/Documents%20and%20Settings/rodrigo/Desktop/Nova%20pasta/lib/pop3.jar!/META-INF/javamail.providers

DEBUG: successfully loaded resource: jar:file:/C:/Documents%20and%20Settings/rodrigo/Desktop/Nova%20pasta/lib/pop3.jar!/META-INF/javamail.providers

DEBUG: URL jar:file:/C:/Documents%20and%20Settings/rodrigo/Desktop/Nova%20pasta/lib/smtp.jar!/META-INF/javamail.providers

DEBUG: successfully loaded resource: jar:file:/C:/Documents%20and%20Settings/rodrigo/Desktop/Nova%20pasta/lib/smtp.jar!/META-INF/javamail.providers

DEBUG: successfully loaded resource: /META-INF/javamail.default.providers

DEBUG: Tables of loaded providers

DEBUG: Providers Listed By Class Name: {com.sun.mail.smtp.SMTPSSLTransport=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun Microsystems, Inc], com.sun.mail.smtp.SMTPTransport=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc], com.sun.mail.imap.IMAPSSLStore=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc], com.sun.mail.pop3.POP3SSLStore=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Sun Microsystems, Inc], com.sun.mail.imap.IMAPStore=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc], com.sun.mail.pop3.POP3Store=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun Microsystems, Inc]}

DEBUG: Providers Listed By Protocol: {imaps=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc], imap=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc], smtps=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun Microsystems, Inc], pop3=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun Microsy stems, Inc], smtp=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc], pop3s=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Sun Microsystems, Inc]}

DEBUG: successfully loaded resource: /META-INF/javamail.default.address.map

DEBUG: URL jar:file:/C:/Documents%20and%20Settings/rodrigo/Desktop/Nova%20pasta/lib/smtp.jar!/META-INF/javamail.address.map

DEBUG: successfully loaded resource: jar:file:/C:/Documents%20and%20Settings/rodrigo/Desktop/Nova%20pasta/lib/smtp.jar!/META-INF/javamail.address.map

DEBUG: java.io.FileNotFoundException: C:\Arquivos de programas\EasyEclipse Desktop Java 1.2.1\jre\jre\lib\javamail.address.map (O sistema não pode encontrar o arquivo especificado)

enviando

DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]

DEBUG SMTP: useEhlo true, useAuth true

DEBUG SMTP: useEhlo true, useAuth true

DEBUG SMTP: trying to connect to host smtp.mail.yahoo.com.br, port 465, isSSL false

220 <a href="http://smtp109.mail.mud.yahoo.com">smtp109.mail.mud.yahoo.com</a> ESMTP

DEBUG SMTP: connected to host smtp.mail.yahoo.com.br, port: 465
EHLO rodrigo-home

<a href="http://250-smtp109.mail.mud.yahoo.com" class="onebox" target="_blank">250-smtp109.mail.mud.yahoo.com</a>

250-AUTH LOGIN PLAIN XYMCOOKIE

250-PIPELINING

250 8BITMIME

DEBUG SMTP: Found extension “AUTH”, arg “LOGIN PLAIN XYMCOOKIE”

DEBUG SMTP: Found extension “PIPELINING”, arg “”

DEBUG SMTP: Found extension “8BITMIME”, arg “”

DEBUG SMTP: Attempt to authenticate

AUTH LOGIN

334 VXNlcm5hbWU6

cmRnX21hQHlhaG9vLmNvbS5icg==

334 UGFzc3dvcmQ6

c2VuaGEx

535 authorization failed (#5.7.0)

javax.mail.AuthenticationFailedException

at javax.mail.Service.connect(Service.java:306)

at javax.mail.Service.connect(Service.java:156)

at javax.mail.Service.connect(Service.java:105)

at javax.mail.Transport.send0(Transport.java:168)

at javax.mail.Transport.send(Transport.java:98)

at br.com.site.mail.mail.Mail.sendMail(Mail.java:78)

at br.com.site.mail.mail.Mail.<init>(Mail.java:94)

at br.com.site.mail.applet.AppletMail.init(AppletMail.java:37)

at sun.applet.AppletPanel.run(AppletPanel.java:378)

at java.lang.Thread.run(Thread.java:595)

Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException: component argument pData

at sun.awt.windows.Win32SurfaceData.initOps(Native Method)

at sun.awt.windows.Win32SurfaceData.<init>(Win32SurfaceData.java:448)

at sun.awt.windows.Win32SurfaceData.createData(Win32SurfaceData.java:316)

at sun.awt.Win32GraphicsConfig.createSurfaceData(Win32GraphicsConfig.java:357)

at sun.awt.windows.WComponentPeer.replaceSurfaceData(WComponentPeer.java:332)

at sun.awt.windows.WComponentPeer.replaceSurfaceData(WComponentPeer.java:313)

at sun.awt.windows.WComponentPeer$2.run(WComponentPeer.java:353)

at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)

at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

Pelo visto é mais alguma configuração que tá faltando… Não será a de SSL, mas não sei o que fazer… Podem ajudar?

At,
Rodrigo

1 Resposta

P

eu andei tendo problema pra enviar pelo gmail também, mais consegui desse jeito aqui...

Properties props = new Properties&#40;&#41;;				
		props.put&#40; &quot;mail.transport.protocol&quot;, &quot;smtp&quot; &#41;;
		props.put&#40; &quot;mail.smtp.host&quot;, host &#41;;	
		props.put&#40; &quot;mail.smtp.port&quot;, port &#41;;//465
		props.put&#40; &quot;mail.smtp.auth&quot;, &quot;true&quot; &#41;;
		props.put&#40; &quot;mail.smtp.starttls.enable&quot;, &quot;true&quot; &#41;;
		props.put&#40; &quot;mail.smtp.socketFactory.class&quot;, &quot;javax.net.ssl.SSLSocketFactory&quot; &#41;;

		Authenticator authenticator = new SMTPAuthenticator&#40; user, password&#41;;

                /*class SMTPAuthenticator extends Authenticator &#123;

		private final String username;

		private final String password;

		SMTPAuthenticator&#40; String username, String password &#41; &#123;

			this.username = username;
			this.password = password;
		&#125;

		public PasswordAuthentication getPasswordAuthentication&#40;&#41; &#123;

			return new PasswordAuthentication&#40; username, password &#41;;
		&#125;
	&#125;*/
		
		Session session = Session.getInstance&#40; props, authenticator &#41;;

		MimeMessage msg = new MimeMessage&#40; session &#41;;
		msg.setFrom&#40; new InternetAddress&#40; from &#41; &#41;;

		InternetAddress&#91;&#93; address = &#123; new InternetAddress&#40; to &#41; &#125;;
		msg.setRecipients&#40; Message.RecipientType.TO, address &#41;;
		msg.setSubject&#40; titulo &#41;;
		MimeBodyPart mbp1 = new MimeBodyPart&#40;&#41;;
		mbp1.setText&#40; message &#41;;
		Multipart mp = new MimeMultipart&#40;&#41;;
		mp.addBodyPart&#40; mbp1 &#41;;
		msg.setContent&#40; mp &#41;;
		msg.setSentDate&#40; Calendar.getInstance&#40;&#41;.getTime&#40;&#41; &#41;;
		Transport.send&#40; msg &#41;;

mas eu atualizei no meu sistema o API do Javamail, que a que eu estava usando ainda não tinha suporte pra SSL.

Criado 23 de maio de 2007
Ultima resposta 24 de mai. de 2007
Respostas 1
Participantes 2