Ir para conteúdo
Fórum Script Brasil
  • 0

Erro ao enviar email


AllNet

Pergunta

9 respostass a esta questão

Posts Recomendados

  • 0

Um cliente SMTP deve iniciar uma sessão SMTP, emitindo o EHLO

comando. Se o servidor SMTP suporta o serviço SMTP extensões que

vai dar uma boa resposta, uma resposta de falha ou um erro

a resposta. Se o servidor SMTP, em violação da presente especificação,

não suporta todas as extensões de serviço SMTP que irá gerar um

Erro de resposta. Antigos cliente SMTP sistemas podem, como discutido acima,

uso HELO (conforme especificado na RFC 821), em vez de EHLO, e servidores devem

suporte para o comando HELO e responder adequadamente a ele. Em qualquer caso, uma

cliente deve emitir HELO ou EHLO antes de iniciar uma transação mail.

Syntax:

ehlo = "EHLO" SP Domain CRLF

helo = "HELO" SP Domain CRLF

ehlo-ok-rsp = ( "250" domain [ SP ehlo-greet ] CRLF )

/ ( "250-" domain [ SP ehlo-greet ] CRLF

*( "250-" ehlo-line CRLF )

"250" SP ehlo-line CRLF )

ehlo-greet = 1*(%d0-9 / %d11-12 / %d14-127)

; string of any characters other than CR or LF

ehlo-line = ehlo-keyword *( SP ehlo-param )

ehlo-keyword = (ALPHA / DIGIT) *(ALPHA / DIGIT / "-")

; additional syntax of ehlo-params depends on

; ehlo-keyword

cliente deve emitir HELO ou EHLO antes de iniciar uma transação mail.

pelo que eu entendi deve ser isso, enviar um HELO. è isso??

como faço?

Obrigado.

Link para o comentário
Compartilhar em outros sites

  • 0

ah desculpa, la vai.

Memo1.Lines.Add('Mensagem...');
IDMessage.ContentType:= 'text/html';
IdMessage.Recipients.EMailAddresses := email; //email destinatario
IdMessage.Subject := 'Assunto';//assunto
IdMessage.Body := Memo1.Lines; // Mensagem que será enviada

//IdMessage.From.Address := 'contato@...'; // Email do Remetente
//IdMessage.From.Name := 'Nome'; // Nome do Remetente, que aparecerá quando chegar.

IdSMTP.Connect;
try
IdSMTP.Send(IdMessage);
finally

IdSMTP.Disconnect;
Application.ProcessMessages;
label1.Caption:= 'E-Mail enviado com sucesso.';

Link para o comentário
Compartilhar em outros sites

  • 0

exemplo:

unit Mail;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, IdMessage, IdBaseComponent, IdComponent, IdTCPConnection,
 IdTCPClient, IdMessageClient, IdSMTP, StdCtrls;

type
 TForm1 = class(TForm)
   Label1: TLabel;
   edtPara: TEdit;
   Label2: TLabel;
   Label3: TLabel;
   edtCC: TEdit;
   edtCCO: TEdit;
   cbxConfirmaLeitura: TCheckBox;
   btnEnviar: TButton;
   Label4: TLabel;
   edtAssunto: TEdit;
   IdSMTP: TIdSMTP;
   IdMessage: TIdMessage;
   btnAnexar: TButton;
   mmAnexos: TMemo;
   odAnexos: TOpenDialog;
   cbxPrioridade: TComboBox;
   Label5: TLabel;
   Label6: TLabel;
   mmMensagem: TMemo;
   procedure btnAnexarClick(Sender: TObject);
   procedure btnEnviarClick(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btnEnviarClick(Sender: TObject);
Var 
xAnexo : Integer; 
begin

IdMessage.Recipients.EMailAddresses := edtPara.Text; 
IdMessage.CCList.EMailAddresses := edtCC.Text; 
IdMessage.BccList.EMailAddresses := edtCCO.Text;

//Trata a Prioridade da mensagem 
Case cbxPrioridade.ItemIndex Of
0 : IdMessage.Priority := mpHigh; 
1 : IdMessage.Priority := mpNormal; 
2 : IdMessage.Priority := mpLow;
End; 

IdMessage.Subject := edtAssunto.Text;
IdMessage.Body.Text := mmMensagem.Lines.Text;

if cbxConfirmaLeitura.Checked Then
idmessage.ReceiptRecipient.Text := IDMessage.From.Text; // Auto Resposta

//Tratando os arquivos anexos
For xAnexo := 0 to mmAnexos.Lines.Count-1 do 
TIdAttachment.create(idmessage.MessageParts, TFileName(mmAnexos.Lines.Strings[xAnexo]));


IdSMTP.Connect; 

Try 
IdSMTP.Send(IdMessage);
Finally
IdSMTP.Disconnect;
Showmessage('Enviado');
End;

end;

procedure TForm1.btnAnexarClick(Sender: TObject);
begin

//Insere o nome do arquivo no memo mmAnexos
if odAnexos.Execute Then
mmAnexos.Lines.Add(odAnexos.FileName);

end;

end.

OBS: faça uma comparação com o seu código

abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...