Fórum Enviar e-mail com formatação HTML e Anexo #302746
21/11/2005
0
Estive procurando nos últimos dias como fazer para enviar um e-mail com comandos HTML e arquivos anexado, o que eu encontrei eu testei, mas não funcionou.
Qdo eu envio o e-mail com os comandos HTML ele vai como texto e não com a formatação HTML como deveria, qdo não anexo nada ele fica com a formatação HTML. Pelo que eu pesquisei é algo a ver com o ContentType ou Charset.
Estou usando os componentes Indy no Delphi 5.
Desde já agradeço,
Tenham um bom dia.
Robert
_____________________________________________________________
´Somos do tamaho dos nossos sonhos.´
Fernando Pessoa
Rgaffo
Curtir tópico
+ 0Posts
21/11/2005
Massuda
Gostei + 0
21/11/2005
Rgaffo
Eu já fui nesse site tb, vc até tinha indicado para outra pessoa que postou aki, acontece que a questão não é enviar figuras anexadas e sim outros arquivos, aí que está o problema, eu li quase tudo e não me ajudou muito. Pesquisei bastante antes de postar a duvida aki é que eu não encontrei nada msm para esse problema.
Desde já agradeço.
Sem mais.
Gostei + 0
22/11/2005
Rgaffo
Obrigado pela indicação do artigo, olhei melhor e então entendi, mas qdo eu implementei o código deu o seguinte erro:
valid RCPT command must precede DATA.
Sabe o que isso pode ser.
Desde já agradeço e desculpe alguma coisa.
Sem mais,
Robert.
Gostei + 0
22/11/2005
Massuda
Gostei + 0
22/11/2005
Rgaffo
Gostei + 0
22/11/2005
Massuda
Gostei + 0
22/11/2005
Rgaffo
Esse erro acontece qdo falta informações para o envio de e-mail, por exemplo o destinatário, não descobri qual era a informação que faltava, pesquisei sobre RCPT no google, então resolvi digitar novamente, primeiramente com dados fixos e depois com as váriaveis dai funcionou, mas o problema do anexo ainda não resolvi.
Sem mais,
Obrigado.
Robert
Gostei + 0
22/11/2005
Rgaffo
procedure TfrmENVP01A.EnviarEmail(Para, Assunto, MensagemEMail: String);
var
sAssunto, sMensagem: String;
TextPart: TIdText;
Anexo: TIdAttachment;
begin
... // Validação de variaveis.
// Existe uma procedure que é chamada antes para conectar
// ao servidor POP e SMTP
if not (POP3.Connected) or not (SMTP.Connected) or (SMTP.Username = ´´) then
Exit;
with Mensagem do Begin
with From do Begin
Name := ´Robert´;
Address := SMTP.UserName;
End; //with From do
Subject := Assunto;
Recipients.EMailAddresses := Para;
ReceiptRecipient.Text := SMTP.UserName; // Auto Resposta
Body.Text := MensagemEMail;
End; // with Mensagem do
{TextPart := TIdText.Create(Mensagem.MessageParts);
TextPart.Body.Text := MensagemEMail;
TextPart.ContentType := ´text/hmtl´;}
TIdAttachment.Create(Mensagem.MessageParts, ´arquivo,cfg´);
{Anexo.ContentType := ´text/plain´;
Anexo.Headers.Add(´Content-ID: <ciscfg.cfg>´);}
Try
Screen.Cursor := crHourGlass;
SMTP.Send(Mensagem);
ResultEnvio := ´E-Mail enviado´;
SMTP.Disconnect;
POP3.Disconnect;
Except
On E: Exception do Begin
SMTP.Disconnect;
POP3.Disconnect;
ResultEnvio := ´Erro ao enviar o E-Mail:´ + E.Message + #1310 + ´ Classe:´ + E.ClassName;
Exit
End;
End; // Try
end;Gostei + 0
22/11/2005
Rgaffo
Sem mais,
Obrigado.
Robert
Gostei + 0
22/11/2005
Massuda
Como você está conectando com o servidor? Seu servidor SMTP requer autenticação?
Gostei + 0
22/11/2005
Rgaffo
O código para conexão com o servidor é:
procedure TfrmENVP01A.ConectaPOPSMTP; begin POP3.Disconnect; SMTP.Disconnect; SQLChange(qryExec, ´select * from SERVEREMAIL where TipoServ = 1´); Screen.Cursor := crHourGlass; if (qryExec.RecordCount > 0) then Try // Conectar ao servidor POP with POP3 do Begin Username := Descriptografar(qryExec.FieldByName(´User´).AsString); Password := Descriptografar(qryExec.FieldByName(´Pass´).AsString); Host := LowerCase(qryExec.FieldByName(´Host´).AsString); Connect; End; // with POP3 do Except On E: Exception do Begin POP3.Disconnect; MsgInfo(´Erro ao conectar com o servidor POP: ´ + E.Message + ´ / Classe: ´ + E.ClassName); Exit End; End; // Try do Conectar ao servidor POP SQLChange(qryExec, ´select * from SERVEREMAIL where TipoServ = 0´); Screen.Cursor := crHourGlass; if (qryExec.RecordCount > 0) then Try // Conectar ao servidor SMTP with SMTP do Begin Username := Descriptografar(qryExec.FieldByName(´User´).AsString); Password := Descriptografar(qryExec.FieldByName(´Pass´).AsString); Host := LowerCase(qryExec.FieldByName(´Host´).AsString); Connect; End; // with SMTP do Except On E: Exception do Begin POP3.Disconnect; SMTP.Disconnect; MsgInfo(´Erro ao conectar com o servidor SMTP: ´ + E.Message + ´ / Classe: ´ + E.ClassName); Exit End; End; // Try do Conectar ao servidor SMTP end;
TipoServ = 0 -> Servidor SMTP
TipoServ = 1 -> Servidor POP
Gostei + 0
23/11/2005
Massuda
Gostei + 0
23/11/2005
Rgaffo
Essa tabela possui um só registro, nunca tera mais.
Pelo dominio eu sei que o POP está relacionado so SMTP
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)