Erro ao enviar e-mail pelo delphi

20/12/2005

0

Gente, estou tentando enviar e-mail pelo delphi, mas dá o seguinte erro:

Project Project1.exe raised exception class EIdProtocolReplyError with message ´<xxx@gmail.com>: Relay access denied
´.Process stopped. Use Step or Run to continue.

Será que alguem pode dar uma ajudinha?

Uso os componentes IDSmtp e IDMessage.

Segui este exemplo: http://www.clubedelphi.net/EMails.html

Obrigado!


Franthesco

Franthesco

Responder

Posts

20/12/2005

Massuda

Não tenho certeza, mas acho que esse erro ocorre quando você não faz login no servidor SMTP. Dê uma olhada [url=http://forum.clubedelphi.net/viewtopic.php?t=65357]neste tópico[/url] para um exemplo (bem) básico de envio de emails usando Indy.


Responder

20/12/2005

Franthesco

Massuda, tentei fazer como no exemplo, mas não obtive exito.

Alguma outra sugestão?

Obrigado!


Responder

21/12/2005

Massuda

Qual serviço de email você está usando? Alguns requerem autenticação, outros podem precisar conexão segura.

Seria interessante postar seu código aqui.


Responder

21/12/2005

Franthesco

Estava usando este código, com smtp do brturbo:

procedure TForm1.Button1Click(Sender: TObject);
begin
with smtp do
begin
//Nome do host
Host:= edit1.Text;
//Nome do usuário, normalmente o e-mail
Username:= edit2.Text;
//Conecta com o servidor smtp
Connect();
end;
with IdMessage do
begin
//O seu endereço de e-mail
From.Address := edit2.Text;
//Aqui vai o endereço de e-mail para o qual você quer mandar o e-mail
Recipients.EMailAddresses := Edit3.Text;
//O assunto da mensagem
Subject := edit4.Text;
//A mensagem que você quer mandar
Body.Text := MmMensagem.Lines.Text;
MessageParts.Clear;
end;
//Envia a mensagem
SMTP.Send(IdMessage);
end;

procedure TForm1.smtpStatus(ASender: TObject; const AStatus: TIdStatus;
const AStatusText: String);
begin
mmStatus.Lines.Add(AStatusText);
end;

Aquele erro, onde aparece o email, é o email do destinatario, eu consigo fazer a conexão com o brturbo, mas dá erro no email da pessoa para quem estou tentando enviar...

Após sua resposta, meu código ficou assim:

procedure TForm1.Button1Click(Sender: TObject);
begin
// monte sua mensagem usando um TIdMessage
IdMessage1.Recipients.EMailAddresses := Edit2.Text;
IdMessage1.Subject := ´TESTE´;
IdMessage1.Body.Text := Edit3.Text;

// nome do seu servidor SMTP
IdSMTP1.Host := ´smtp.brturbo.com.br´;

// alguns servidores SMTP requerem login outros não
IdSMTP1.AuthenticationType := atLogin;
IdSMTP1.Username := ´xxx´; //usei meu nome de usuário
IdSMTP1.Password := ´xxx´; //usei a senha

// conecta com o servidor
IdSMTP1.Connect;
try
IdSMTP1.Send(IdMessage1);
finally
IdSMTP1.Disconnect;
end;



Obrigado!


Responder

21/12/2005

Massuda

Não uso esse provedor, mas no tópico que indiquei para você, tem um post explicando que pode ser necessário conectar com o servidor POP3 primeiro (use um TIdPOP3) e permanecer conectado até terminar de usar o servidor SMTP.

Estou imaginando que o email de destino existe.


Responder

21/12/2005

Franthesco

Obrigado pela ajuda Massuda!

Era necessário fazer a conexão pop3 mesmo.

Muito Obrigado!


Responder

21/12/2005

Franthesco

Bem, consegui enviar os e-mails, agora estou com outro problema:

Envio o 1º e-mail, td bem.

Quando vou enviar o 2º, ele envia, mas com o texto q foi para o primeiro junto.

Já tentei usar o comando IdMessage1.Body.Clear, ou IdMessage.Clear, mas não adianta.

Alguem sabe o que pode estar acontecendo?


Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar