Opção de retorno de mensagem enviada pelo outlook express?

14/05/2008

0

Pessoal tenho um programa de envio de e-mails, funciona certinho, envia o e-mail, mais gostaria de saber se tem como eu receber no outlook express uma opção de retorno que foi recebido o e-mail, ou alguma rotina que faça isso.


Adriano_servitec

Adriano_servitec

Responder

Posts

15/05/2008

Adriano_servitec

Alguem sabe como fazer?

Estava testando este código aqui
{:Estou verificando se retorna alguma mensagem de volta para meu e-mail}
        IdMessage.Headers.Values[´Return-Message´] := ´adrianoservitec@uol.com.br´; //FSMTP_From;


Mais não retornou nada.

Estou usando a paleta indy do Delphi 7

O que eu preciso é algo que retorne caso o e-mail enviado não chegue no seu destino, ou seja se não foi recebido, ou se foi recebido tambem, para o e-mail que eu enviei.


Responder

15/05/2008

Massuda

:arrow: http://forum.devmedia.com.br/viewtopic.php?t=84983


Responder

15/05/2008

Adriano_servitec

:arrow: http://forum.devmedia.com.br/viewtopic.php?t=84983


Olá amigo, ja tinha visto este post, mais não retornou nada....Foi por ele que eu fiz o codigo, se tiver mais algo, fico grato

Adriano


Responder

15/05/2008

Massuda

Como você está testando?


Responder

15/05/2008

Adriano_servitec

Como você está testando?


Assim

function TSMTP.Send(Subject: String; FileName: String): Boolean;
var
LidSMTP: TIdSMTP;
  LIdMessage : TIdMessage;
begin
  Result:= False;
  LidSMTP:= TIdSMTP.Create(nil);
  while not (LidSMTP.Connected) do   // enquanto não conectar, o programa vai ficar tentando conectar infinitamente.
  begin
    try
      LidSMTP.Disconnect;
      LidSMTP.Host := FSMTP_Server;
      LidSMTP.Port := FSMTP_Port;
      LidSMTP.Username:= FSMTP_Login;
      LidSMTP.Password:= FSMTP_Password;

      LidSMTP.AuthenticationType:= atLogin;
      LidSMTP.Connect;
      if not LidSMTP.Connected then
        Exit;

      LIdMessage := TIdMessage.Create(nil);
      try
        LIdMessage.From.Text:= FSMTP_From;
        LIdMessage.Recipients.EMailAddresses:= FSMTP_To;
        LIdMessage.MessageParts.Clear;
        {:Foi criado para enviar a mensagem que esta na descricao}
        LIdMessage.Body.Text := FSMTP_Message;

        TIdAttachment.Create(LIdMessage.MessageParts, FileName);

        LIdMessage.Subject := Subject; //File_Name + ´ em ´ + FormatDateTime(´dd/mm/yyyy hh:mm´, Now);
        LIdMessage.Priority:= mpHighest;
        LidSMTP.Send(LIdMessage);
        {:Modificado por Adriano - Estou verificando se retorna alguma mensagem de volta para meu e-mail}
        LIdMessage.Headers.Values[´Return-Receipt-To´] := ´adrianoservitec@uol.com.br´; //FSMTP_From;
        //LIdMessage.Headers.Add(´Disposition-Notification-To: "Fulano de Tal" <adrianoservitec@uol.com.br>´);
        LIdMessage.SaveToFile(´c:\pedidos\List.txt´);
        {:Fim da modificação}
        Result := True;
      finally
        LIdMessage.Free;
      end;
    Except
      {Não conseguiu conectar, tenta conectar novamente em 1 minuto}
      Sleep(1000);
      continue;
    end; // try
  end; // while
 LidSMTP.Disconnect;
  LidSMTP.Free;
end;



Responder

15/05/2008

Massuda

Relendo o que você postou, vejo que o que você deseja é algo mais complicado...
O que eu preciso é algo que retorne caso o e-mail enviado não chegue no seu destino, ou seja se não foi recebido, ou se foi recebido tambem, para o e-mail que eu enviei.
...você quer ter algum retorno sobre o que aconteceu com o email enviado.

Lamento. Isso não existe.

No caso do email que chegou no destinatário. O código que sugeri anteriormente é a confirmação de recebimento que o destinatário pode optar por enviar (automaticamente ou não). Se for conta de webmail, geralmente não manda confirmação. Existem os casos onde seu email pode ter sido classificado como spam ou simplesmente ter sido apagado pelo destinatário; novamente, não há como enviar confirmação nesses casos.

O caso do email que não chega, geralmente o problema são endereços de email errados, alguns servidores gentilmente mandam um aviso de erro ao remetente, mas com o crescente volume de spam, muitos simplesmente optam por não enviar aviso de erro. Outra possibilidade, é o domínio do endereço de email ter uma conta ´buraco negro´, para qual todos os emails com endereços inexistentes naquele domínio são enviados; nesse caso, o email chega em algum lugar, por isso não ocorre (a rigor) um erro.

Se você precisa garantir o recebimento de email por parte de terceiros, não existe solução baseada unicamente em software. Este é daqueles casos onde é preciso ter algum tipo de acordo operacional com os destinatários para forçar a confirmação do recebimento por outra forma que não seja o próprio sistema de email.


Responder

15/05/2008

Adriano_servitec

Poxa, pelo visto é impossivel, mais tudo bem.

Valeu amigo.

Obrigado por responder.

Abraços
T+


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