Opção de retorno de mensagem enviada pelo outlook express?
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
Curtidas 0
Respostas
Adriano_servitec
14/05/2008
Alguem sabe como fazer?
Estava testando este código aqui
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.
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.
GOSTEI 0
Massuda
14/05/2008
:arrow: http://forum.devmedia.com.br/viewtopic.php?t=84983
GOSTEI 0
Adriano_servitec
14/05/2008
: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
GOSTEI 0
Massuda
14/05/2008
Como você está testando?
GOSTEI 0
Adriano_servitec
14/05/2008
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;
GOSTEI 0
Massuda
14/05/2008
Relendo o que você postou, vejo que o que você deseja é algo mais complicado...
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.
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.
GOSTEI 0
Adriano_servitec
14/05/2008
Poxa, pelo visto é impossivel, mais tudo bem.
Valeu amigo.
Obrigado por responder.
Abraços
T+
Valeu amigo.
Obrigado por responder.
Abraços
T+
GOSTEI 0