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

Enviar E-mail


Mauro Jr

Pergunta

E aí gurizada,

Tenho uma lista de e-mails em um DBLooKup e em um DBGrid.

A minha dúvida é a seguinte: Como faço para enviar um e-mail para um dos registros da lista .

E se eu tiver um DBEdit com um enderço de e-mail, como faço para enviar um e-mail para este endereço?

Espero que alguém possa explicar minhar dúvidas ou parte delas!

Abraços,

Mauro Junior unsure.gif

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

cara vou colocar aqui o nosso artigo anterio sobre envio de emails quem sabe pode ajudar você agora se não ajudar você grita ai q ajudamos

O Dilema do envio de e-mail 
Um grande dilema pelo qual passei foi o envio de e-mail´s por programas feitos em Delphi. Os detalhes do problema seguem abaixo: 

- Fiz um programa para um cliente que tinha como opção o envio de relatórios por e-mail; 
- Todo o processo estava pronto e funcionando perfeitamente; 
- Quando passei para o cliente nada funcionou! 
Isso me deixou muito confuso, no meu computador continuava a funcionar perfeitamente! 

Como "todos" sabem precisamos configurar o NMSMTP com um servidor smtp (host) para o envio de e-mail´s. No meu caso estava usando UOL e sendo assim eu estava usando o SMTP.UOL.COM.BR como Host. Só que o meu cliente não usa UOL. E esse aparentemente era o problema. 

Não encontrei a solução sozinho e pedi ajuda a vários colegas programadores o qual um me respondeu da seguinte maneira: 

"Se eu não me engano, no Uol você deve primeiro baixar as mensagens para que depois ele deixe você enviar, ou seja, para poder enviar mensagens, você precisa estar autenticado la no UOL. 
Espero ter ajudado. 
Abraços, 
Fernando Gonçalves," 
Foi só isso que precisei para resolver todo o "Dilema". Só precisaria me identificar no POP3 do UOL que estaria tudo resolvido. 

Então eu fiz: 

- Coloquei um componente NMPOP3 e antes dos comandos do NMSMTP eu coloquei esses do NMPOP3: 

//Processo de reconhecimento no POP3 do UOL 
NMPOP31.AttachFilePath := '.'; 
NMPOP31.DeleteOnRead := FALSE; 
NMPOP31.ReportLevel := Status_Basic; 
NMPOP31.TimeOut := 20000; 
NMPOP31.Host := 'pop3.uol.com.br'; 
NMPOP31.Port := 110; 
NMPOP31.UserID := 'MeuLogin'; 
NMPOP31.Password := 'Minha Senha'; 
NMPOP31.Connect; 
//Conexão não feita ele sai 
//Conexão feita ele desconecta e prossegue 
if not NMPOP31.Connected then exit else NMPOP31.Disconnect; 
//Prosseguindo ele agora tenta se conectar ao SMTP do UOL 
NMSMTP1.ClearParams := TRUE; 
NMSMTP1.Host := 'smtp.uol.com.br' 
NMSMTP1.Port := 25; 
NMSMTP1.UserID := 'MeuLogin' 
NMSMTP1.Connect; 
//Conexão não feita ele sai 
//Conexão feita ele prossegue 
If not NMSMTP1.Connected then exit; 
//Processo de envio 
NMSMTP1.PostMessage.Body.Clear; 
NMSMTP1.PostMessage.ToAddress.Clear; 
NMSMTP1.PostMessage.FromAddress := 'MeuLogin@MeuProvedor.com.br' 
NMSMTP1.PostMessage.FromName := 'Meu Nome Completo' 
NMSMTP1.PostMessage.Body.Add('Teste de envio de email'); 
NMSMTP1.PostMessage.Subject := ('Teste de Envio'); 
NMSMTP1.PostMessage.ToAddress.Add('destino@DestinoProvedor.com.br'); 
NMSMTP1.SendMail; 
Depois de estabelecer a conexão com o POP3 do UOL o envio pelo SMTP do UOL ficou liberado não importando em que provedor eu estivesse conectado. 

No meu caso eu pude usar POP3 e SMTP do UOL pois sou assinante do UOL, porém você pode simplesmente criar um e-mail no IG, IEG ou outro serviço de e-mail grátis e pronto é só utilizar a dica!! 

Obs.: Nem todos os e-mail´s grátis tem serviço POP3! 
por: Levy Dos Santos Teixeira

ok espero ter ajudado

Link para o comentário
Compartilhar em outros sites

  • 0
cara vou colocar aqui o nosso artigo anterio sobre envio de emails quem sabe pode ajudar você agora se não ajudar você grita ai q ajudamos

O Dilema do envio de e-mail 
Um grande dilema pelo qual passei foi o envio de e-mail´s por programas feitos em Delphi. Os detalhes do problema seguem abaixo: 

- Fiz um programa para um cliente que tinha como opção o envio de relatórios por e-mail; 
- Todo o processo estava pronto e funcionando perfeitamente; 
- Quando passei para o cliente nada funcionou! 
Isso me deixou muito confuso, no meu computador continuava a funcionar perfeitamente! 

Como "todos" sabem precisamos configurar o NMSMTP com um servidor smtp (host) para o envio de e-mail´s. No meu caso estava usando UOL e sendo assim eu estava usando o SMTP.UOL.COM.BR como Host. Só que o meu cliente não usa UOL. E esse aparentemente era o problema. 

Não encontrei a solução sozinho e pedi ajuda a vários colegas programadores o qual um me respondeu da seguinte maneira: 

"Se eu não me engano, no Uol você deve primeiro baixar as mensagens para que depois ele deixe você enviar, ou seja, para poder enviar mensagens, você precisa estar autenticado la no UOL. 
Espero ter ajudado. 
Abraços, 
Fernando Gonçalves," 
Foi só isso que precisei para resolver todo o "Dilema". Só precisaria me identificar no POP3 do UOL que estaria tudo resolvido. 

Então eu fiz: 

- Coloquei um componente NMPOP3 e antes dos comandos do NMSMTP eu coloquei esses do NMPOP3: 

//Processo de reconhecimento no POP3 do UOL 
NMPOP31.AttachFilePath := '.'; 
NMPOP31.DeleteOnRead := FALSE; 
NMPOP31.ReportLevel := Status_Basic; 
NMPOP31.TimeOut := 20000; 
NMPOP31.Host := 'pop3.uol.com.br'; 
NMPOP31.Port := 110; 
NMPOP31.UserID := 'MeuLogin'; 
NMPOP31.Password := 'Minha Senha'; 
NMPOP31.Connect; 
//Conexão não feita ele sai 
//Conexão feita ele desconecta e prossegue 
if not NMPOP31.Connected then exit else NMPOP31.Disconnect; 
//Prosseguindo ele agora tenta se conectar ao SMTP do UOL 
NMSMTP1.ClearParams := TRUE; 
NMSMTP1.Host := 'smtp.uol.com.br' 
NMSMTP1.Port := 25; 
NMSMTP1.UserID := 'MeuLogin' 
NMSMTP1.Connect; 
//Conexão não feita ele sai 
//Conexão feita ele prossegue 
If not NMSMTP1.Connected then exit; 
//Processo de envio 
NMSMTP1.PostMessage.Body.Clear; 
NMSMTP1.PostMessage.ToAddress.Clear; 
NMSMTP1.PostMessage.FromAddress := 'MeuLogin@MeuProvedor.com.br' 
NMSMTP1.PostMessage.FromName := 'Meu Nome Completo' 
NMSMTP1.PostMessage.Body.Add('Teste de envio de email'); 
NMSMTP1.PostMessage.Subject := ('Teste de Envio'); 
NMSMTP1.PostMessage.ToAddress.Add('destino@DestinoProvedor.com.br'); 
NMSMTP1.SendMail; 
Depois de estabelecer a conexão com o POP3 do UOL o envio pelo SMTP do UOL ficou liberado não importando em que provedor eu estivesse conectado. 

No meu caso eu pude usar POP3 e SMTP do UOL pois sou assinante do UOL, porém você pode simplesmente criar um e-mail no IG, IEG ou outro serviço de e-mail grátis e pronto é só utilizar a dica!! 

Obs.: Nem todos os e-mail´s grátis tem serviço POP3! 
por: Levy Dos Santos Teixeira

ok espero ter ajudado

biggrin.gif Valeu parceiro! Agradeço a atenção!

Um amigo mostrou-me uma outra forma que também funciona (é através da Mapi). Eis aqui um exemplo:

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls, ExtCtrls,Mapi;

type

TForm1 = class(TForm)

GroupBox1: TGroupBox;

Label1: TLabel;

EditOrigem: TEdit;

EditDestino: TEdit;

Label2: TLabel;

Label3: TLabel;

EditAssunto: TEdit;

Bevel1: TBevel;

MemoMensagem: TMemo;

Label4: TLabel;

EditAnexo: TEdit;

Panel1: TPanel;

Button1: TButton;

Bevel2: TBevel;

Label5: TLabel;

procedure Button1Click(Sender: TObject);

function EnviarEmail(const de,para,assunto,texto,arquivo:string;confirma:boolean):integer;

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);

begin

EnviarEmail(EditOrigem.Text,EditDestino.Text,EditAssunto.Text,MemoMensagem.Text,EditAnexo.Text,true);

end;

function Tform1.EnviarEmail(const de,para,assunto,texto,arquivo:string;confirma:boolean):integer;

var

Msg : TMapiMessage;

lpSender, lpRecepient : TMapiRecipDesc;

FileAttach : TMapiFileDesc;

SM : TFNMapiSendMail;

MapiModule : HModule;

Flags : Cardinal;

begin

//Propriedade de Mensagem

FillChar(Msg,SizeOf(Msg),0);

with Msg do

begin

if (Assunto <> '') then

lpszSubject := PChar(Assunto);

if (Texto <> '') then

lpszNoteText := PChar(Texto);

//Remetente

if (De <> '') then

begin

lpSender.ulRecipClass := Mapi_Orig;

lpSender.lpszName := PChar(De);

lpSender.lpszAddress := PChar(De);

lpSender.ulReserved := 0;

lpSender.ulEIDSize := 0;

lpSender.lpEntryID := nil;

lpOriginator := @lpSender;

end;

//Destinatário

if (Para <> '') then

begin

lpRecepient.ulRecipClass := Mapi_To;

lpRecepient.lpszName := PChar(Para);

lpRecepient.lpszAddress := PChar(Para);

lpRecepient.ulReserved := 0;

lpRecepient.ulEIDSize := 0;

lpRecepient.lpEntryID := nil;

nRecipCount := 1;

lpRecips := @lpRecepient;

end

else

lpRecips := nil;

//Arquivo anexo

if (Arquivo = '') then

begin

nFileCount := 0;

lpFiles := nil;

end

else

begin

FillChar(FileAttach,SizeOf(FileAttach),0);

FileAttach.nPosition := Cardinal($FFFFFFFF);

Fileattach.lpszPathName := PChar(Arquivo);

nFileCount := 1;

lpFiles := @FileAttach;

end;

//Carrega a dll e o método para envio do email

showmessage(PChar(MapiDll));

MAPIModule := LoadLibrary(PChar(MapiDll));

if MAPIModule = 0 then

Result := -1

else

try

if Confirma then

Flags := MAPI_Dialog or MAPI_Logon_Ui

else

Flags := 0;

@SM := GetProcAddress(MAPIModule,'MAPISendMail');

if @SM <> nil then

Result := SM(0,Application.Handle,Msg,Flags,0)

else

Result := 1;

finally

FreeLibrary(MAPIModule);

end;

end;

end;

end.

Abraços,

Mauro Junior

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...