enviar email
peguei uma dica da revista clube do delphi para enviar e-mail e coloquei alguns edits para capturar o remetente, destinatário, assunto e o texto, só q agora ele só envia qdo eu fecho o aplicativo, será que alguém pode me ajudar?
procedure TForm1.Button1Click(Sender: TObject);
VAR
Remetente, Destinatario, titulo, texto: string;
begin
remetente:= Edit1.Text;
Destinatario:= Edit2.Text;
titulo:= Edit3.Text;
texto:=Memo1.Lines.Text;
NMSMTP1.Host:= ´smtp.softsystem.com.br´;
NMSMTP1.UserID:= ´rogeriomartins´;
NMSMTP1.Connect;
NMSMTP1.PostMessage.FromAddress:=remetente;
NMSMTP1.PostMessage.ToAddress.Text:= ´rogeriomartins@softsystem.com.br´;
NMSMTP1.PostMessage.Body.Text:=´teste da aplicação enviando email´;
NMSMTP1.SendMail;
end;
end.
procedure TForm1.Button1Click(Sender: TObject);
VAR
Remetente, Destinatario, titulo, texto: string;
begin
remetente:= Edit1.Text;
Destinatario:= Edit2.Text;
titulo:= Edit3.Text;
texto:=Memo1.Lines.Text;
NMSMTP1.Host:= ´smtp.softsystem.com.br´;
NMSMTP1.UserID:= ´rogeriomartins´;
NMSMTP1.Connect;
NMSMTP1.PostMessage.FromAddress:=remetente;
NMSMTP1.PostMessage.ToAddress.Text:= ´rogeriomartins@softsystem.com.br´;
NMSMTP1.PostMessage.Body.Text:=´teste da aplicação enviando email´;
NMSMTP1.SendMail;
end;
end.
Rogsystem
Curtidas 0
Respostas
Ggean
05/11/2003
Oi eu tenho um problema parecido
veja essa rotina, nao dá erro nenhum mas na caixa de destino nao chega nada.
adicione uses comobj,olectrls,
var
outlook:olevariant;
vmailitem:variant;
begin
try
outlook:=getactiveoleobject(´outlook.application´);
except
outlook:=createOleObject(´outlook.application´);
end;
vmailItem:=outlook.createItem(0);
vmailItem.recipients.add(edit1.text);
vmailItem.subject:=edit2.text;
vmailItem.body:=edit3.text;
vmailItem.send;
varclear(outlook);
showmessage(´Enviado´);
end;
-------------------------------------------------
essa outra envia usado o Shell mas mostra a tela do OUtlook e eu gostaria que nao mostrasse
adicione Uses ShellApi
var Mail,dados : String;
begin
dados:=´Data: ´+datetostr(date)+#13+
´Hora: ´+timetostr(time)+13+
Mail := ´mailto:´+Edit1.Text+
´?subject= Teste1´+´&Body=´+dados;
´&AttachFilePath=C:\RevisaoEfetivada.PDF´;
ShellExecute(getdesktopwindow,´open´,pchar
(Mail),nil,nil,sw_hide);
end;
Descupe por nao poder ajudar mas
se vc puder me dá uma luz eu agradeco muito
Um abraco,
Gean Carlos.
veja essa rotina, nao dá erro nenhum mas na caixa de destino nao chega nada.
adicione uses comobj,olectrls,
var
outlook:olevariant;
vmailitem:variant;
begin
try
outlook:=getactiveoleobject(´outlook.application´);
except
outlook:=createOleObject(´outlook.application´);
end;
vmailItem:=outlook.createItem(0);
vmailItem.recipients.add(edit1.text);
vmailItem.subject:=edit2.text;
vmailItem.body:=edit3.text;
vmailItem.send;
varclear(outlook);
showmessage(´Enviado´);
end;
-------------------------------------------------
essa outra envia usado o Shell mas mostra a tela do OUtlook e eu gostaria que nao mostrasse
adicione Uses ShellApi
var Mail,dados : String;
begin
dados:=´Data: ´+datetostr(date)+#13+
´Hora: ´+timetostr(time)+13+
Mail := ´mailto:´+Edit1.Text+
´?subject= Teste1´+´&Body=´+dados;
´&AttachFilePath=C:\RevisaoEfetivada.PDF´;
ShellExecute(getdesktopwindow,´open´,pchar
(Mail),nil,nil,sw_hide);
end;
Descupe por nao poder ajudar mas
se vc puder me dá uma luz eu agradeco muito
Um abraco,
Gean Carlos.
GOSTEI 0
Ggean
05/11/2003
Oi sou eu ´denovo´
Fiz um teste com a sua funcao e deu certo, veja:
procedure Tform1.Envia;
begin
NMSMTP1.Host:= ´meu_servidor_smtp.com.br´;
NMSMTP1.UserID:= ´Meu_nome_de_usuario´;
NMSMTP1.Connect;
NMSMTP1.PostMessage.FromAddress:=´Meu_endereco_de_email´;
NMSMTP1.PostMessage.Subject:=´Minha APP enviou email!! Legal né?´;
NMSMTP1.PostMessage.ToAddress.Text:= ´gcarlos.alves@bol.com.br´;
NMSMTP1.PostMessage.Body.Text:=´teste da aplicação enviando email´;
NMSMTP1.SendMail;
end;
Fiz um teste com a sua funcao e deu certo, veja:
procedure Tform1.Envia;
begin
NMSMTP1.Host:= ´meu_servidor_smtp.com.br´;
NMSMTP1.UserID:= ´Meu_nome_de_usuario´;
NMSMTP1.Connect;
NMSMTP1.PostMessage.FromAddress:=´Meu_endereco_de_email´;
NMSMTP1.PostMessage.Subject:=´Minha APP enviou email!! Legal né?´;
NMSMTP1.PostMessage.ToAddress.Text:= ´gcarlos.alves@bol.com.br´;
NMSMTP1.PostMessage.Body.Text:=´teste da aplicação enviando email´;
NMSMTP1.SendMail;
end;
GOSTEI 0
Rogsystem
05/11/2003
desta forma funciona, mas eu queria digitar o remetente, o destinatário, o título e o texto em tempo de execução
GOSTEI 0
Celo-faveri
05/11/2003
Faça o seguinte amigo:
procedure TForm1.Envia;
var server : string;
username : string;
myemail : string;
assunto : string;
toemail : string;
bodyemail : string;
begin
server := Edit1.Text;
username : Edit2.Text;
myemail : Edit3.Text;
assunto : Edit4.Text;
toemail : Edit5.Text;
bodyemail : Memo1.Text;
NMSMTP1.Host:= server;
NMSMTP1.UserID:= username;
NMSMTP1.Connect;
NMSMTP1.PostMessage.FromAddress:=myemail;
NMSMTP1.PostMessage.Subject:=assunto;
NMSMTP1.PostMessage.ToAddress.Text:= toemail;
NMSMTP1.PostMessage.Body.Text:=bodyemail;
NMSMTP1.SendMail;
end;
Valew...
T+ :wink:
procedure TForm1.Envia;
var server : string;
username : string;
myemail : string;
assunto : string;
toemail : string;
bodyemail : string;
begin
server := Edit1.Text;
username : Edit2.Text;
myemail : Edit3.Text;
assunto : Edit4.Text;
toemail : Edit5.Text;
bodyemail : Memo1.Text;
NMSMTP1.Host:= server;
NMSMTP1.UserID:= username;
NMSMTP1.Connect;
NMSMTP1.PostMessage.FromAddress:=myemail;
NMSMTP1.PostMessage.Subject:=assunto;
NMSMTP1.PostMessage.ToAddress.Text:= toemail;
NMSMTP1.PostMessage.Body.Text:=bodyemail;
NMSMTP1.SendMail;
end;
Valew...
T+ :wink:
GOSTEI 0
Ramilton
05/11/2003
procedure TfrmMaladireta.BitBtn1Click(Sender: TObject);
begin
if Edit3.Text = ´´ then
begin
ShowMessage(´Informe primeiro o E-mail do Candidato´);
Edit3.SetFocus;
end
else begin
with smtp do
begin
//Nome do host
Host:= edit1.Text;
//Nome do usuário, normalmente o e-mail
Username:= edit2.Text;
//Conecta com o servidor smtp
Connect();
end;
with IdMessage do
begin
//O seu endereço de e-mail
From.Address := edit2.Text;
//Aqui vai o endereço de e-mail para o qual você quer mandar o e-mail
Recipients.EMailAddresses := edit3.Text;
//O assunto da mensagem
Subject := edit4.Text;
//A mensagem que você quer mandar
Body.Text := MmMensagem.Lines.Text;
MessageParts.Clear;
end;
//Aqui para poder anexar um arquivo
if Edit5.Text <> ´´ then
TIdAttachment.Create(IdMessage.MessageParts,edit5.Text);
//Envia a mensagem
SMTP.Send(IdMessage);
SMTP.Disconnect;
end;
end;
Ramilton
begin
if Edit3.Text = ´´ then
begin
ShowMessage(´Informe primeiro o E-mail do Candidato´);
Edit3.SetFocus;
end
else begin
with smtp do
begin
//Nome do host
Host:= edit1.Text;
//Nome do usuário, normalmente o e-mail
Username:= edit2.Text;
//Conecta com o servidor smtp
Connect();
end;
with IdMessage do
begin
//O seu endereço de e-mail
From.Address := edit2.Text;
//Aqui vai o endereço de e-mail para o qual você quer mandar o e-mail
Recipients.EMailAddresses := edit3.Text;
//O assunto da mensagem
Subject := edit4.Text;
//A mensagem que você quer mandar
Body.Text := MmMensagem.Lines.Text;
MessageParts.Clear;
end;
//Aqui para poder anexar um arquivo
if Edit5.Text <> ´´ then
TIdAttachment.Create(IdMessage.MessageParts,edit5.Text);
//Envia a mensagem
SMTP.Send(IdMessage);
SMTP.Disconnect;
end;
end;
Ramilton
GOSTEI 0