Fórum Email Delphi 7 #398810
07/04/2011
0
Bom dia.
Meu cliente trocou em algumas máquinas o XP pelo W7 e com isto minha rotina que enviava email (Delphi 6) parou de funcionar.
Pesquisei na internet e encontrei a solução abaixo, que agora funciona no W7 mas não funciona no XP onde é usado o Outlook Express.
Quando tento executar recebo a mensagem "Operação não disponível".
Se alguém puder ajudar, desde já agradeço.
unit email;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, OleCtnrs, ShellApi;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
const olMailItem = 0;
implementation
uses comobj, olectrls;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
Outlook: OleVariant;
vMailItem: variant;
begin
try
Outlook:=GetActiveOleObject('Outlook.Application'); <--- O erro ocorre na execução desta linha
except
Outlook:=CreateOleObject('Outlook.Application');
end;
vMailItem := Outlook.CreateItem(olMailItem);
vMailItem.Recipients.Add(trim(edit1.text));
vMailItem.Recipients.Add(trim(edit2.text));
vMailItem.Subject:='Teste de email';
vMailItem.Body:='Este é um teste';
//vMailItem.Attachments.Add('C:\temp\arq.txt'); // arquivo
vMailItem.Send;
VarClear(Outlook);
end;
end.
Meu cliente trocou em algumas máquinas o XP pelo W7 e com isto minha rotina que enviava email (Delphi 6) parou de funcionar.
Pesquisei na internet e encontrei a solução abaixo, que agora funciona no W7 mas não funciona no XP onde é usado o Outlook Express.
Quando tento executar recebo a mensagem "Operação não disponível".
Se alguém puder ajudar, desde já agradeço.
unit email;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, OleCtnrs, ShellApi;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
const olMailItem = 0;
implementation
uses comobj, olectrls;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
Outlook: OleVariant;
vMailItem: variant;
begin
try
Outlook:=GetActiveOleObject('Outlook.Application'); <--- O erro ocorre na execução desta linha
except
Outlook:=CreateOleObject('Outlook.Application');
end;
vMailItem := Outlook.CreateItem(olMailItem);
vMailItem.Recipients.Add(trim(edit1.text));
vMailItem.Recipients.Add(trim(edit2.text));
vMailItem.Subject:='Teste de email';
vMailItem.Body:='Este é um teste';
//vMailItem.Attachments.Add('C:\temp\arq.txt'); // arquivo
vMailItem.Send;
VarClear(Outlook);
end;
end.
Lineu Saraiva
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)