Array
(
)

dilena de enviar e-mail pelo delphi

Fernando
   - 18 jan 2006

Caros amigos programadores estou tentando enviar e-mail direto pelo delphi, so que nao consigo, ja peguei varios exemplos e todos dao o mesmo erro. Segue o exemplo abaixo

NMSMTP1.Host := ´smtp.gyn.terra.com.br´;
NMSMTP1.UserID := ´meu usuario´;
NMSMTP1.Connect; // Conecta no servidor

NMSMTP1.PostMessage.FromAddress := ´fr.rodrigo@terra.com.br´;
NMSMTP1.PostMessage.ToAddress.Text := ´fr.rodrigo@terra.com.br´;
NMSMTP1.PostMessage.Body.Text := ´Coloque aqui a mensagem´;
NMSMTP1.PostMessage.Subject := ´Titulo do Email´;
NMSMTP1.SendMail; // Envia email


dessa forma sempre me retorno o erro
550 Must Authenticate !

qual seria o problema ???

se alguem tiver outra maneira favor entre em contato, preciso disso meio urgente


Leonardobhbr
   - 18 jan 2006

tipo que eu utilizo componentes indy pode ser duas coisas

uma vc tem que checar email antes de enviar só abrir o pop3 alguns servidores obriga isto para garantir q é a pessoa

ou então a propriedade autenticação tem que estar como Login

e passe a senha tambem do usuario como eu tenho delphi 7 não existe esse componente para eu analisar


Massuda
   - 18 jan 2006

@Fernando
Esse componente que você está utilizando, NMSMTP, não irá funcionar pois ele (que eu saiba) não suporta autenticação no servidor SMTP; esse componente é antigo e na época que foi feito a maioria dos servidores SMTP não exigia autenticação. Infelizmente, como a empresa que fez esse componente não existe mais, não existe versão atualizada dele.

Sugiro você baixar a versão 9 do Indy ([url=http://www.IndyProject.org/]link para o site oficial[/url]) e utilizá-la para implementar o envio de email. O Indy é open source.

Quanto a utilização do Indy, experimente pesquisar aqui o fórum por TIdSMTP que você deve encontrar vários tópicos sobre ele.


Firekiller_am
   - 18 jan 2006

procedure TfrmEnviarAtualizacao.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key = 27 then
close;
end;

procedure TfrmEnviarAtualizacao.BtnEnviarClick(Sender: TObject);
begin
btnEnviar.Enabled:=False;
tfXPform1.BottomTitleCaption := ´Status: Conectando Com o Provedor!´;
Try
NMSMTP.Connect;
Except
tfXPform1.BottomTitleCaption := ´Erro: Provedor Não Disponível no Momento!!!´;
Exit;
End;
tfXPform1.BottomTitleCaption := ´Status: Provedor Conectado !´;
If cbManaus.Checked Then Begin
NMSMTP.PostMessage.FromAddress := ´sogeconjorge@uol.com.br´;
NMSMTP.PostMessage.FromName := ´Ativa Copiadoras - São Paulo´;
NMSMTP.PostMessage.Subject := ´Atualização de Dados p/ Sistema - Para Manaus´;
NMSMTP.PostMessage.ToAddress.Add(´ativa.copiadoras@horizon.com.br´);
End;
If cbRecife.Checked Then Begin
NMSMTP.PostMessage.FromAddress := ´ativa.copiadoras@horizon.com.br´;
NMSMTP.PostMessage.FromName := ´Ativa Copiadoras - Manaus´;
NMSMTP.PostMessage.Subject := ´Atualização de Dados p/ Sistema - Para Recife´;
NMSMTP.PostMessage.ToAddress.Add(´sogeconjorge@uol.com.br´);
End;
If cbSaoPaulo.Checked Then Begin
NMSMTP.PostMessage.FromAddress := ´ativa.copiadoras@horizon.com.br´;
NMSMTP.PostMessage.FromName := ´Ativa Copiadoras - Manaus´;
NMSMTP.PostMessage.Subject := ´Atualização de Dados p/ Sistema - Para São Paulo´;
NMSMTP.PostMessage.ToAddress.Add(´sogeconjorge@uol.com.br´);
End;
//NMSMTP.PostMessage.ToCarbonCopy.Add(´cpd@belmiros.com.br´);

NMSMTP.PostMessage.Attachments.Add(´\Construtor\Exportacao\Notven.csv´);
NMSMTP.PostMessage.Attachments.Add(´\Construtor\Exportacao\Iteven.csv´);
NMSMTP.PostMessage.Attachments.Add(´\Construtor\Exportacao\Config.csv´);

NMSMTP.PostMessage.Body.Add(´Favor Copie os Arquivos em Anexo para a pasta \Construtor\Importacao do Servidor,´);
NMSMTP.PostMessage.Body.Add(´em seguida entre no sistema e execute a opção Importação de Dados (F11).´);

tfXPform1.BottomTitleCaption := ´Status: Enviando E-Mail !´;
NMSMTP.SendMail;
tfXPform1.BottomTitleCaption := ´Status: E-Mail Enviado !´;

end;

procedure TfrmEnviarAtualizacao.cbSaoPauloClick(Sender: TObject);
begin
If cbSaoPaulo.Checked Then cbManaus.Checked:=False;
end;

procedure TfrmEnviarAtualizacao.cbManausClick(Sender: TObject);
begin
If cbManaus.Checked Then cbSaoPaulo.Checked:=False;

end;

qualquer coisa procure no forum active delphi por borland_linuxer