これが私のコードです:
const
olMailItem = 0;
var
olApp, OlNameSpace, OlItem, rdSafeItem, rdUtils: variant;
begin
olApp:= CreateOleObject ('Outlook.Application');
olNameSpace:= olApp.GetNamespace ('MAPI');
olNameSpace.Logon;
olItem:= olApp.CreateItem (olMailItem);
rdSafeItem:= CreateOleObject ('Redemption.SafeMailItem');
rdSafeItem.Item:= olItem;
rdSafeItem.Subject:= 'Testing';
rdSafeItem.attachments.Add ('c:\windows\win.ini');
rdSafeItem.Recipients.Add ('test@testing.com');
rdSafeItem.Send;
rdUtils:= CreateOleObject ('Redemption.MAPIUtils');
rdUtils.DeliverNow;
olNameSpace.Logoff;
varclear (rdUtils);
varclear (rdSafeItem);
varclear (olItem);
varclear (olNameSpace);
varclear (olApp);
end;
メール送信後、アドレス A70D6D13 にアクセス違反のメッセージが届きます (このアドレスは不変のようです)。F8 を使用して手順全体を実行すると、'end' ステートメントの後、CPU ウィンドウがアドレス A70D6D13 に表示され、すべてのメモリが ???? として表示されます。
Delphi 7、Outlook 2003、Redemption 4.8.0.1184 を使用しています。このコードには何が欠けていますか?
編集: Outlook/Redemption 経由でメールを送信するためのコード スニペットをいくつか見つけました。以下は、OutlookApplication サーバーを使用するスニペットの 1 つです。
begin
outlookapplication1.Connect;
NmSpace:= outlookapplication1.GetNamespace('MAPI');
NmSpace.Logon('', '', False, False);
oItem:= outlookapplication1.CreateItem(olMailItem);
sItem:= CreateOleObject('Redemption.SafeMailItem');
oItem.Subject:= 'my subject';
oItem.save;
sItem.Item:= oItem;
sItem.Recipients.Add('test@test.com');
sItem.Attachments.Add('C:\windows\win.ini');
sItem.save;
SItem.send;
outlookapplication1.Disconnect;
end;
これも同じエラーになります。AVのアドレスの魔法とは?解決の糸口になるはずです。
ティア、
ノアム