Fórum Enviar e-mail COM ANEXO no Delphi XE #420251
20/07/2012
0
Alguém poderia me orientar a enviar um e-mail do Delphi XE (Com Anexo).Vi uma vídeo feita por Leonardo Bertolini que funciona perfeitamente, só que sem anexo.. POR FAVOR ALGUÉM PODE ME AJUDAR. O código do botão enviar é o seguinte:
Var
i: integer;
begin
// Assunto da Msg
Msg.Subject := edtAssunto.Text;
// Destinatários
Msg.Recipients.Clear;
for i := 0 to lstDestinatarios.Count - 1 do
begin
Msg.Recipients.Add;
Msg.Recipients.Items[Msg.Recipients.Count - 1].Address := lstDestinatarios.Items[i];
end;
// Counteúdo
Msg.Body.Text := mCorpo.Text;
// Conectando e enviando
Try
SMTP.Connect;
if SMTP.Connected then
begin
CompMensagem.Clear;
TIdAttachmentFile.Create(CompMensagem.MessageParts, Edit1.Text);
SMTP.Send(Msg);
SMTP.Disconnect;
ShowMessage(E-Mail enviado com sucesso !!! );
end;
Except
on e: Exception do
begin
ShowMessage(ERRO: + e.Message);
SMTP.Disconnect;
end;
End;
end;
Var
i: integer;
begin
// Assunto da Msg
Msg.Subject := edtAssunto.Text;
// Destinatários
Msg.Recipients.Clear;
for i := 0 to lstDestinatarios.Count - 1 do
begin
Msg.Recipients.Add;
Msg.Recipients.Items[Msg.Recipients.Count - 1].Address := lstDestinatarios.Items[i];
end;
// Counteúdo
Msg.Body.Text := mCorpo.Text;
// Conectando e enviando
Try
SMTP.Connect;
if SMTP.Connected then
begin
CompMensagem.Clear;
TIdAttachmentFile.Create(CompMensagem.MessageParts, Edit1.Text);
SMTP.Send(Msg);
SMTP.Disconnect;
ShowMessage(E-Mail enviado com sucesso !!! );
end;
Except
on e: Exception do
begin
ShowMessage(ERRO: + e.Message);
SMTP.Disconnect;
end;
End;
end;
Rafael Mota
Curtir tópico
+ 0
Responder
Posts
28/07/2016
Alisson Conceição
Uses
IdSMTP, IdSSLOpenSSL, IdMessage, IdText, IdAttachmentFile,
IdExplicitTLSClientServerBase;
--------------------------------------------------------------------------------------------
var
// variáveis e objetos necessários para o envio
IdSSLIOHandlerSocket: TIdSSLIOHandlerSocketOpenSSL;
IdSMTP: TIdSMTP;
IdMessage: TIdMessage;
IdText: TIdText;
sAnexo: string;
begin
// instanciação dos objetos
IdSSLIOHandlerSocket := TIdSSLIOHandlerSocketOpenSSL.Create(Self);
IdSMTP := TIdSMTP.Create(Self);
IdMessage := TIdMessage.Create(Self);
try
// Configuração do protocolo SSL (TIdSSLIOHandlerSocketOpenSSL)
IdSSLIOHandlerSocket.SSLOptions.Method := sslvSSLv23;
IdSSLIOHandlerSocket.SSLOptions.Mode := sslmClient;
// Configuração do servidor SMTP (TIdSMTP)
IdSMTP.IOHandler := IdSSLIOHandlerSocket;
IdSMTP.UseTLS := utUseImplicitTLS;
IdSMTP.AuthType := satDefault;
IdSMTP.Port := 465;
IdSMTP.Host := 'smtp.gmail.com';
IdSMTP.Username := 'usuario@gmail.com';
IdSMTP.Password := 'senha';
// Configuração da mensagem (TIdMessage)
IdMessage.From.Address := 'remetente@gmail.com';
IdMessage.From.Name := 'Nome do Remetente';
IdMessage.ReplyTo.EMailAddresses := IdMessage.From.Address;
IdMessage.Recipients.Add.Text := 'destinatario1@email.com';
IdMessage.Subject := 'Assunto do e-mail';
IdMessage.Encoding := meMIME;
// Configuração do corpo do email (TIdText)
IdText := TIdText.Create(IdMessage.MessageParts);
IdText.Body.Add('Corpo do e-mail');
IdText.ContentType := 'text/plain; charset=iso-8859-1';
// Opcional - Anexo da mensagem (TIdAttachmentFile)
sAnexo := 'C:\Anexo.pdf';
if FileExists(sAnexo) then
begin
TIdAttachmentFile.Create(IdMessage.MessageParts, sAnexo);
end;
// Conexão e autenticação
try
IdSMTP.Connect;
IdSMTP.Authenticate;
except
on E:Exception do
begin
MessageDlg('Erro na conexão ou autenticação: ' +
E.Message, mtWarning, [mbOK], 0);
Exit;
end;
end;
// Envio da mensagem
try
IdSMTP.Send(IdMessage);
MessageDlg('Mensagem enviada com sucesso!', mtInformation, [mbOK], 0);
except
On E:Exception do
begin
MessageDlg('Erro ao enviar a mensagem: ' +
E.Message, mtWarning, [mbOK], 0);
end;
end;
finally
// desconecta do servidor
IdSMTP.Disconnect;
// liberação da DLL
UnLoadOpenSSLLibrary;
// liberação dos objetos da memória
FreeAndNil(IdMessage);
FreeAndNil(IdSSLIOHandlerSocket);
FreeAndNil(IdSMTP);
end;
end;
IdSMTP, IdSSLOpenSSL, IdMessage, IdText, IdAttachmentFile,
IdExplicitTLSClientServerBase;
--------------------------------------------------------------------------------------------
var
// variáveis e objetos necessários para o envio
IdSSLIOHandlerSocket: TIdSSLIOHandlerSocketOpenSSL;
IdSMTP: TIdSMTP;
IdMessage: TIdMessage;
IdText: TIdText;
sAnexo: string;
begin
// instanciação dos objetos
IdSSLIOHandlerSocket := TIdSSLIOHandlerSocketOpenSSL.Create(Self);
IdSMTP := TIdSMTP.Create(Self);
IdMessage := TIdMessage.Create(Self);
try
// Configuração do protocolo SSL (TIdSSLIOHandlerSocketOpenSSL)
IdSSLIOHandlerSocket.SSLOptions.Method := sslvSSLv23;
IdSSLIOHandlerSocket.SSLOptions.Mode := sslmClient;
// Configuração do servidor SMTP (TIdSMTP)
IdSMTP.IOHandler := IdSSLIOHandlerSocket;
IdSMTP.UseTLS := utUseImplicitTLS;
IdSMTP.AuthType := satDefault;
IdSMTP.Port := 465;
IdSMTP.Host := 'smtp.gmail.com';
IdSMTP.Username := 'usuario@gmail.com';
IdSMTP.Password := 'senha';
// Configuração da mensagem (TIdMessage)
IdMessage.From.Address := 'remetente@gmail.com';
IdMessage.From.Name := 'Nome do Remetente';
IdMessage.ReplyTo.EMailAddresses := IdMessage.From.Address;
IdMessage.Recipients.Add.Text := 'destinatario1@email.com';
IdMessage.Subject := 'Assunto do e-mail';
IdMessage.Encoding := meMIME;
// Configuração do corpo do email (TIdText)
IdText := TIdText.Create(IdMessage.MessageParts);
IdText.Body.Add('Corpo do e-mail');
IdText.ContentType := 'text/plain; charset=iso-8859-1';
// Opcional - Anexo da mensagem (TIdAttachmentFile)
sAnexo := 'C:\Anexo.pdf';
if FileExists(sAnexo) then
begin
TIdAttachmentFile.Create(IdMessage.MessageParts, sAnexo);
end;
// Conexão e autenticação
try
IdSMTP.Connect;
IdSMTP.Authenticate;
except
on E:Exception do
begin
MessageDlg('Erro na conexão ou autenticação: ' +
E.Message, mtWarning, [mbOK], 0);
Exit;
end;
end;
// Envio da mensagem
try
IdSMTP.Send(IdMessage);
MessageDlg('Mensagem enviada com sucesso!', mtInformation, [mbOK], 0);
except
On E:Exception do
begin
MessageDlg('Erro ao enviar a mensagem: ' +
E.Message, mtWarning, [mbOK], 0);
end;
end;
finally
// desconecta do servidor
IdSMTP.Disconnect;
// liberação da DLL
UnLoadOpenSSLLibrary;
// liberação dos objetos da memória
FreeAndNil(IdMessage);
FreeAndNil(IdSSLIOHandlerSocket);
FreeAndNil(IdSMTP);
end;
end;
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)