Enviar email

15 respostas
M

Fiz uma aplicação que só esta sendo possivel enviar email para alguém que está no mesmo servidor que eu estou usando… Quando tento enviar para alguém em outro servidor está acontecendo o seguinte erro:

DEBUG: setDebug: JavaMail version 1.4ea
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.unig2001.com.br”, port 25, isSSL false
220 andromeda.unig2001.com.br ESMTP Postfix
DEBUG SMTP: connected to host “smtp.unig2001.com.br”, port: 25

EHLO NOTEBOOK
250-andromeda.unig2001.com.br
250-PIPELINING
250-SIZE 20240000
250-ETRN
250 8BITMIME
DEBUG SMTP: Found extension “PIPELINING”, arg ""
DEBUG SMTP: Found extension “SIZE”, arg "20240000"
DEBUG SMTP: Found extension “ETRN”, arg ""
DEBUG SMTP: Found extension “8BITMIME”, arg ""
DEBUG SMTP: use8bit false
MAIL FROM:[email removido]
250 Ok
RCPT TO:[email removido]
554 [email removido]: Relay access denied
DEBUG SMTP: Invalid Addresses
DEBUG SMTP: [email removido]
DEBUG SMTP: Sending failed because of invalid destination addresses
RSET
250 Ok
javax.mail.SendFailedException: Invalid Addresses;
nested exception is:
com.sun.mail.smtp.SMTPAddressFailedException: 554 [email removido]: Relay access denied

at com.sun.mail.smtp.SMTPTransport.rcptTo(SMTPTransport.java:1196)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:584)
at javax.mail.Transport.send0(Transport.java:169)
at javax.mail.Transport.send(Transport.java:98)
at EmailUnig.postMail(EmailUnig.java:67)
at EmailUnig.main(EmailUnig.java:85)

Caused by: com.sun.mail.smtp.SMTPAddressFailedException: 554 [email removido]: Relay access denied

at com.sun.mail.smtp.SMTPTransport.rcptTo(SMTPTransport.java:1094)
... 5 more

QUIT
221 Bye
ERRO =Invalid Addresses

Alguém pode me ajudar ???

15 Respostas

ramilani12

Esse e-mail [email removido] existe?

Pela mensagem de erro:

DEBUG SMTP: Invalid Addresses
DEBUG SMTP: [email removido]
DEBUG SMTP: Sending failed because of invalid destination addresses

Mostre como vc implementou o metodo de envio …

M

A forma que usei para implementar foi a seguinte :

import java.util.Properties;

import javax.mail.Address;

import javax.mail.Message;

import javax.mail.MessagingException;

import javax.mail.Session;

import javax.mail.Transport;

import javax.mail.internet.AddressException;

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeMessage;
public class EmailUnig {

public static void main(String[] args) {

Properties props = new Properties();

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

props.put(mail.smtp.auth, false);

props.put(mail.smtp.port, 25);

Session session = Session.getInstance(props, null);

session.setDebug(true);

Message msg = new MimeMessage(session);
try {
		msg.setFrom(new InternetAddress("[email removido]"));
		msg.setRecipient(Message.RecipientType.TO, new InternetAddress("[email removido]"));
		msg.setSubject("Exemplo");
		msg.setText(" testando o javamail  ");
		Transport.send(msg);
	} catch (MessagingException e) {
		System.out.println("ERRO =" + e.getMessage());
	}
}

}

bsl.lacerda

Olá Marcelão. Beleza!!!?
cara, eu consegui transformar o exemoplo que você me enviou em servlet e está funcionando direitinho. Não será problema com o servidor smtp da UNIG?
Aproveitando estou com um problema com JSTL. Tem como você dar uma olhadinha.

http://www.guj.com.br/posts/list/66644.java

O

O problema está aqui:

RCPT TO:<[email removido]>
554 <[email removido]>: Relay access denied

Existe alguma regra no servidor de SMTP que não permite que você ([email removido]), ou sua máquina (andromeda.unig2001.com.br), envie e-mail para endereços externos (isto é fazer relay).
Procure o administrador do seu servidor de SMTP (smtp.unig2001.com.br) e verifique qual a regra de relay.

M

Valeu…

:lol:

vou dar uma olhada…

Agora;;;;;; Porque quando estou no próprio provedor funciona … Isso só acontece quando estou em casa…

O

Por causa das regras de relay. Por segurança, a maioria dos servidores de SMTP não permite que máquinas fora do domínio a que ele pertence enviem e-mail através dele (relay). Isto evita que qualquer engraçadinho use o servidor para enviar spam. As regras podem se basear em várias parâmetros: endereço IP, dominio, endereço de e-mail, etc. Quando você está na sua casa provavelmente usa a rede do seu provedor de Internet que deve ser diferente do servidor de SMTP.

M

Obrigado… oyama…

Zeed01

Bom dia Colegas !

marcelofreire2004:

Estou pesquisando justamente sobre envio de e-mail a partir de uma aplicação Swing…
Tentei utilizar o seu código mas esta dando erro nos imports:

import javax.mail.Address; 
import javax.mail.Message; 
import javax.mail.MessagingException; 
import javax.mail.Session; 
import javax.mail.Transport; 
import javax.mail.internet.AddressException; 
import javax.mail.internet.InternetAddress; 
import javax.mail.internet.MimeMessage;

O erro é:

package javax.mais does not exist

Eu tenho que instalar algo adicional para ter este pacote ?

Se alguém puder me ajudar, fico muito agradecido !

[]s

M

Amigo,

você de baixar a API do javamail :

http://java.sun.com/products/javamail/downloads/index.html

Zeed01

Boa tarde colegas !

Eu fiz o download, mas onde e o que descompacto ?
Tem um .jar par eu incluir no meu projeto ?

Obrigado a todos.

[]s

bsl.lacerda

Olá amigo. Dentro do arquivo compactado tem uma pasta e dentro desta pasta tem um arquivo mail.jar que você deve inserir no classpath do seu projeto.
Descompacte o mail.jar na pasta lib da sua aplicação. Depois clica com o botão direito em cinma do arquivo e qadiciona ele ao seu build path.
Espero que funcione.
Abraços

Zeed01

Boa tarde colegas !

Consegui importar o mail.jar e os erros dos imports sumiram, nas na execução esta dando o seguinte erro:

[code

DEBUG: setDebug: JavaMail version 1.4ea
Exception in thread “main” java.lang.NoClassDefFoundError: javax/activation/DataSource
at com.atm.util.SendMail.main(SendMail.java:41)
Java Result: 1

[/code]

Alguém pode me ajudar ?

[]s

bsl.lacerda

Posta aqui o código pra gente poder analisar melhor.

Zeed01
* SendMail.java
 *
 * Created on 14 de Agosto de 2007, 10:04
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package com.atm.util;



import java.util.Properties; 
import javax.mail.Message; 
import javax.mail.MessagingException; 
import javax.mail.Session; 
import javax.mail.Transport; 
import javax.mail.internet.InternetAddress; 
import javax.mail.internet.MimeMessage; 
import javax.mail.*;


/**
 *
 * @author r100320
 */
public class SendMail {

    public static void main(String[] args) { 
        Properties props = new Properties(); 
        
        props.put ("mail.smtp.host", "smtp.meusmtp.com.br"); 
        props.put("mail.smtp.auth", "false"); 
        props.put("mail.smtp.port", "25");         
        
        Session session = Session.getInstance(props, null); 
        session.setDebug(true); 
        Message msg = new MimeMessage(session); 

        try { 
            msg.setFrom(new InternetAddress("[email removido]")); 
            msg.setRecipient(Message.RecipientType.TO, new InternetAddress("[email removido]"));             
            
            msg.setSubject("Exemplo"); 
            msg.setText(" testando o javamail "); 
            Transport.send(msg); 
        } catch (MessagingException e) { 
            System.out.println("ERRO =" + e.getMessage()); 
        } 
    } 
}

Tks.

M

Agora você deve baixar o Java Activation Framework

http://java.sun.com/products/javabeans/jaf/downloads/index.html

você deve baixar o Activation.jar

os procedimentos a serem feitos são os mesmos que você fez com o mail.jar conforme a orientação do Bruno…

um abraço

Criado 11 de agosto de 2007
Ultima resposta 15 de ago. de 2007
Respostas 15
Participantes 5