Teaga.txt Postado Junho 4, 2004 Denunciar Share Postado Junho 4, 2004 Tenho que fazer um programa que mande e-mail usando (1x idSMTP, 2x Edit, 1xButton) bom tenho o servidor "smtp.uol.com.br" e o e-mail na UOLbom montar eu sei só não sei as funções ... e onde que coloca ela ... quem tiver o codigo de fonte ... eu agradeço ... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 lkm Postado Junho 4, 2004 Denunciar Share Postado Junho 4, 2004 Olá tenta esse código aquiprocedure Tfm_clientes.BitBtn3Click(Sender: TObject);var mail : String;begin if DBEdit12.Text = '' then //DBEdit12.Text é o nome do campo no meu form begin Beep; Showmessage('Verifique o seu endereço de e-mail !!!'); end else begin Mail := ('mailto:') + DBEdit12.Text; ShellExecute(GetDesktopWindow,'open',pchar(Mail),nil,nil,sw_ShowNormal); end;end; Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Felipeee Postado Junho 4, 2004 Denunciar Share Postado Junho 4, 2004 Caro amigo,Estou com um problemao que nem mesmo pelo que vi o moderador dste forum sabe resolve-lo. Poderia me ajudar?Tento envio um e-mail com comandos html via delphi, so que quando abro o e-mail enviado aparece o script, ou seja, o codigo html.Como posso enviar o e-mail sem que isso não aconteca?Agradeco sua ajuda!Felipeee. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Corposemalma Postado Junho 4, 2004 Denunciar Share Postado Junho 4, 2004 então vamus lá!Vo só copia e colar aqui... (Esse saiu do Site www.delphi.eti.br, se quiser da uma passada lá tem mais alguns tutoriais)Enviando email’s com componentes Indy Por Marcos P. Gomes Salve amigos e amigas, neste pequeno artigo vamos fazer um sistema de envio de email usando componentes Indy. O uso destes componentes é muito simples e prático, como podemos confirmar abaixo. Crie uma nova Application no delphi, adicione e modifique a propriedades dos seguintes componentes. Componentes Nome Valor Label1 Caption Para : Label2 Caption CC : Label3 Caption CCO : Label4 Caption Assunto Edit1 Text Name EdtPara Edit2 Text Name EdtCC Edit3 Text Name EdtCCO Label Caption Prioridade ComboBox Name CbxPrioridade Items Alta Normal Baixa CheckBox cbxConfirmaLeitura &Solicitar confirmação de leitura Memo Lines Name MmMensagem BitBtn Name btnEnviar Caption &Enviar BitBtn Name btnAnexar Caption Anexar Memo Name mmAnexos Lines ScrollBars SsVertical OpenDialog Name odAnexos Title Anexando Arquivos Filter | Filter Name Todos os Arquivos (*.*) Filter | Filter *.* Agora vá até a paleta Indy Clients e adicione o componente IdSMTP, depois vá até a paleta Indy Misc e adicione o componente IdMessage e altere as seguintes propriedades. Componente Nome Valor IdMessage Name IdMessage From | Address seuemail@provedor.com From | Name Seunome IdSMTP Name IdSMTP Host Seuhost.com.br UserId Seu Nome do usuário Bom todos os componentes necessários para que possamos enviar um email já estão em nosso formulário, agora vamos começar a codificar (é a parte que mais gosto de um sistema, odeio instanciar componentes). Apenas confira se seu formulário está com a aparência igual a imagem abaixo. Dê um duplo clique em btnAnexar, e adicione o seguinte código : //Insere o nome do arquivo no memo mmAnexos if odAnexos.Execute Then mmAnexos.Lines.Add(odAnexos.FileName); Nesse ponto cada vez que você clicar no botão Anexar e você selecionar um arquivo ele vai gravar o nome e o caminho do arquivo no Memo mmAnexos. Agora dê clique duplo no btnEnviar e adicione mais esse código : Var xAnexo : Integer; begin IdMessage.Recipients.EMailAddresses := edtPara.Text; IdMessage.CCList.EMailAddresses := edtCC.Text; IdMessage.BccList.EMailAddresses := edtCCO.Text; //Trata a Prioridade da mensagem Case cbxPrioridade.ItemIndex Of 0 : IdMessage.Priority := mpHigh; 1 : IdMessage.Priority := mpNormal; 2 : IdMessage.Priority := mpLow; End; IdMessage.Subject := edtAssunto.Text; IdMessage.Sender.Text := mmMensagem.Lines.Text; if cbxConfirmaLeitura.Checked Then idmessage.ReceiptRecipient.Text := IDMessage.From.Text; // Auto Resposta //Tratando os arquivos anexos For xAnexo := 0 to mmAnexos.Lines.Count-1 do TIdAttachment.create(idmessage.MessageParts, TFileName(mmAnexos.Lines.Strings[xAnexo])); IdSMTP.Connect; Try IdSMTP.Send(IdMessage); Finally IdSMTP.Disconnect; End; Nosso sistema de envio de email já está concluído agora é só você realizar seus testes, os indy são muito uteis principalmente para enviar email com anexos, tendo em vista que quando você usa o ShellExecute para enviar email ele não envia email anexo. Mas os componentes Indy não resume-se apenas a isso, vale a pena você dar uma olhada com mais calma e descobrir a potencialidade dos mesmos. Confira abaixo como ficou o código completo do sistema. unit fSendIndy; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, Menus, IdMessage, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdMessageClient, IdSMTP; type TForm1 = class(TForm) Label1: TLabel; edtPara: TEdit; Label2: TLabel; Label3: TLabel; edtCC: TEdit; edtCCo: TEdit; cbxConfirmaLeitura: TCheckBox; mmMensagem: TMemo; btnEnviar: TBitBtn; Label4: TLabel; edtAssunto: TEdit; IdSMTP: TIdSMTP; IdMessage: TIdMessage; btnAnexar: TBitBtn; mmAnexos: TMemo; odAnexos: TOpenDialog; cbxPrioridade: TComboBox; Label5: TLabel; procedure btnEnviarClick(Sender: TObject); procedure btnAnexarClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.btnEnviarClick(Sender: TObject); Var xAnexo : Integer; begin IdMessage.Recipients.EMailAddresses := edtPara.Text; IdMessage.CCList.EMailAddresses := edtCC.Text; IdMessage.BccList.EMailAddresses := edtCCO.Text; //Trata a Prioridade da mensagem Case cbxPrioridade.ItemIndex Of 0 : IdMessage.Priority := mpHigh; 1 : IdMessage.Priority := mpNormal; 2 : IdMessage.Priority := mpLow; End; IdMessage.Subject := edtAssunto.Text; IdMessage.Sender.Text := mmMensagem.Lines.Text; if cbxConfirmaLeitura.Checked Then idmessage.ReceiptRecipient.Text := IDMessage.From.Text; // Auto Resposta //Tratando os arquivos anexos For xAnexo := 0 to mmAnexos.Lines.Count-1 do TIdAttachment.create(idmessage.MessageParts, TFileName(mmAnexos.Lines.Strings[xAnexo])); IdSMTP.Connect; Try IdSMTP.Send(IdMessage); Finally IdSMTP.Disconnect; End; end; procedure TForm1.btnAnexarClick(Sender: TObject); begin //Insere o nome do arquivo no memo mmAnexos if odAnexos.Execute Then mmAnexos.Lines.Add(odAnexos.FileName); end; end. Marcos P. Gomes é Formado em Tecnologia em Informática e trabalha como Tecnólogo em Processamento de Dados em uma empresa do ramo automobilístico, desenvolve sistemas em diversas linguagens e é um dos fundadores do site http://www.delphibr.com.br/artigos/www.delphibr.com.br. Também faz parte do grupo de moderadores da lista de discussão lista-delphi@yahoogrupos.com.br. Pode ser contatado pelo e-mail marcos@delphibr.com.br.Caro felipeee.. A sua pergunta eu respondo no teu tópico... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Teaga.txt Postado Junho 5, 2004 Autor Denunciar Share Postado Junho 5, 2004 Bom ainda tenho algumas duvidas ... Seuhost.com.br (smtp.bol.com.br) <--- Isso está certo ... é para colocar o smtp ??Seu Nome do usuário (th1687 ou th1687@bol.com.br) <--- Qual que coloco ??? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Corposemalma Postado Junho 5, 2004 Denunciar Share Postado Junho 5, 2004 Seuhost.com.br (smtp.bol.com.br) EXAToSeu Nome do usuário th1687 <- pro BOL, alguns outros usam o endereco completo.. depende do servidor Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Teaga.txt Postado Junho 5, 2004 Autor Denunciar Share Postado Junho 5, 2004 Bom eu fiz mais esta dando um erro ... =( ...ERRO: Command failed. Mailbox is unavailableo que seria isso ??? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Corposemalma Postado Junho 5, 2004 Denunciar Share Postado Junho 5, 2004 ta falando que a caixa não esta disponivel.. Verifica se teu usuario não tem letras maiusculas.. O bol é meio chato... verifica a senha tambem..Qualquer coisa testa com o usuario vazio e sem senha Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Teaga.txt Postado Junho 5, 2004 Autor Denunciar Share Postado Junho 5, 2004 Ops ... eu não coloquei senha ... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Teaga.txt Postado Junho 5, 2004 Autor Denunciar Share Postado Junho 5, 2004 Ae deu tudo certo ... da para colocar um alerta no final falando seu e-mail foi enviado ??? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Teaga.txt Postado Junho 5, 2004 Autor Denunciar Share Postado Junho 5, 2004 Opis ... não funcionou uma coisa .... a mensagem ... não aparece ... aparece tudo assunto e tudo mais a mensagem não chegaO CODIGO DE FONTE ESTA ASSIM:unit Mail; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, IdMessage, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdMessageClient, IdSMTP, StdCtrls; type TForm1 = class(TForm) Label1: TLabel; edtPara: TEdit; Label2: TLabel; Label3: TLabel; edtCC: TEdit; edtCCO: TEdit; cbxConfirmaLeitura: TCheckBox; mmMensagem: TMemo; btnEnviar: TButton; Label4: TLabel; edtAssunto: TEdit; IdSMTP: TIdSMTP; IdMessage: TIdMessage; btnAnexar: TButton; mmAnexos: TMemo; odAnexos: TOpenDialog; cbxPrioridade: TComboBox; Label5: TLabel; procedure btnAnexarClick(Sender: TObject); procedure btnEnviarClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.btnEnviarClick(Sender: TObject); Var xAnexo : Integer; begin IdMessage.Recipients.EMailAddresses := edtPara.Text; IdMessage.CCList.EMailAddresses := edtCC.Text; IdMessage.BccList.EMailAddresses := edtCCO.Text; //Trata a Prioridade da mensagem Case cbxPrioridade.ItemIndex Of 0 : IdMessage.Priority := mpHigh; 1 : IdMessage.Priority := mpNormal; 2 : IdMessage.Priority := mpLow; End; IdMessage.Subject := edtAssunto.Text; IdMessage.Sender.Text := mmMensagem.Lines.Text; if cbxConfirmaLeitura.Checked Then idmessage.ReceiptRecipient.Text := IDMessage.From.Text; // Auto Resposta //Tratando os arquivos anexos For xAnexo := 0 to mmAnexos.Lines.Count-1 do TIdAttachment.create(idmessage.MessageParts, TFileName(mmAnexos.Lines.Strings[xAnexo])); IdSMTP.Connect; Try IdSMTP.Send(IdMessage); Finally IdSMTP.Disconnect; End; end; procedure TForm1.btnAnexarClick(Sender: TObject); begin //Insere o nome do arquivo no memo mmAnexos if odAnexos.Execute Then mmAnexos.Lines.Add(odAnexos.FileName); end; end. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Corposemalma Postado Junho 5, 2004 Denunciar Share Postado Junho 5, 2004 IdMessage.Sender.Text := mmMensagem.Lines.Text; HUm... acho que sender é quem envia e não o corpo do email... acho que esta usando a propriedade erradaDo aviso:Try IdSMTP.Send(IdMessage);FinallyIdSMTP.Disconnect;ShowMessage('Email enviado com sucesso!')End; Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Teaga.txt Postado Junho 5, 2004 Autor Denunciar Share Postado Junho 5, 2004 Qual eu uso então ?? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Corposemalma Postado Junho 5, 2004 Denunciar Share Postado Junho 5, 2004 não sei...Usa o autocompletar(CTRL + ESPACO) e vai vendo as propriedades, a que tiver nome que pareça ser tenta... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Teaga.txt Postado Junho 5, 2004 Autor Denunciar Share Postado Junho 5, 2004 Não é possivel não tem nada q envie certo .... alguém sabe ??? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Teaga.txt Postado Junho 5, 2004 Autor Denunciar Share Postado Junho 5, 2004 AE ... deu ... fica assim o CODIGOunit Mail; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, IdMessage, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdMessageClient, IdSMTP, StdCtrls; type TForm1 = class(TForm) Label1: TLabel; edtPara: TEdit; Label2: TLabel; Label3: TLabel; edtCC: TEdit; edtCCO: TEdit; cbxConfirmaLeitura: TCheckBox; btnEnviar: TButton; Label4: TLabel; edtAssunto: TEdit; IdSMTP: TIdSMTP; IdMessage: TIdMessage; btnAnexar: TButton; mmAnexos: TMemo; odAnexos: TOpenDialog; cbxPrioridade: TComboBox; Label5: TLabel; Label6: TLabel; mmMensagem: TMemo; procedure btnAnexarClick(Sender: TObject); procedure btnEnviarClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.btnEnviarClick(Sender: TObject); Var xAnexo : Integer; begin IdMessage.Recipients.EMailAddresses := edtPara.Text; IdMessage.CCList.EMailAddresses := edtCC.Text; IdMessage.BccList.EMailAddresses := edtCCO.Text; //Trata a Prioridade da mensagem Case cbxPrioridade.ItemIndex Of 0 : IdMessage.Priority := mpHigh; 1 : IdMessage.Priority := mpNormal; 2 : IdMessage.Priority := mpLow; End; IdMessage.Subject := edtAssunto.Text; IdMessage.Body.Text := mmMensagem.Lines.Text; if cbxConfirmaLeitura.Checked Then idmessage.ReceiptRecipient.Text := IDMessage.From.Text; // Auto Resposta //Tratando os arquivos anexos For xAnexo := 0 to mmAnexos.Lines.Count-1 do TIdAttachment.create(idmessage.MessageParts, TFileName(mmAnexos.Lines.Strings[xAnexo])); IdSMTP.Connect; Try IdSMTP.Send(IdMessage); Finally IdSMTP.Disconnect; Showmessage('Enviado'); End; end; procedure TForm1.btnAnexarClick(Sender: TObject); begin //Insere o nome do arquivo no memo mmAnexos if odAnexos.Execute Then mmAnexos.Lines.Add(odAnexos.FileName); end; end. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Corposemalma Postado Junho 5, 2004 Denunciar Share Postado Junho 5, 2004 Resolvido? Vo deixa aberto uns dias, pra se aparecer alguma coisa... depois fecho o tópico Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Teaga.txt
Tenho que fazer um programa que mande e-mail usando (1x idSMTP, 2x Edit, 1xButton) bom tenho o servidor "smtp.uol.com.br" e o e-mail na UOL
bom montar eu sei só não sei as funções ... e onde que coloca ela ... quem tiver o codigo de fonte ... eu agradeço ...
Link para o comentário
Compartilhar em outros sites
16 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.