EMAIL附加自动添加的问题???? |
答題得分者是:hagar
|
ljq_2002
一般會員 發表:27 回覆:12 積分:7 註冊:2003-01-02 發送簡訊給我 |
要实现如下步骤:
程序先打开excel或word文档,在excel或word文档中修改文档,关闭excel或word后,启动outlook,excel或word文档自动生成为email附件,在outlook中选择收件人后发送邮件。自己的代码如下:
var
Template:OleVariant;
pathh:string; MapiMessage: TMapiMessage;
FileAttach: TMapiFileDesc;
filesname:string;
MError: Cardinal;
begin
pathh:=ExtractFilePath(Paramstr(0)) 'aa.xls'; //打开excel
lcid := GetUserDefaultLCID;
try
ExcelApplication1.Connect;
ExcelApplication1.Visible[lcid]:=True;
ToolButton5.Down:=True;
Template:=pathh;
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Open(template,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,Lcid));
ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1] as _Worksheet); with MapiMessage do
begin
ulReserved := 0;
lpszSubject := nil;
lpszNoteText := PChar(RichEdit1.Lines.Text);
lpszMessageType := nil;
lpszDateReceived := nil;
lpszConversationID := nil;
flFlags := 0;
lpOriginator := nil;
nRecipCount := 0;
lpRecips := nil; //加载文件处理
filesname:=pathh;
FillChar(FileAttach, SizeOf(FileAttach), 0);
FileAttach.nPosition := Cardinal($FFFFFFFF);
FileAttach.lpszPathName := PChar(filesname);
nFileCount := 1;
lpFiles := @FileAttach; end;
MError := MapiSendMail(0, Application.Handle, MapiMessage,
MAPI_DIALOG or MAPI_LOGON_UI or MAPI_NEW_SESSION, 0);
if MError <> 0 then MessageDlg(SSendError, mtError, [mbOK], 0);}
except
showmessage('错误 Excel !!!');
end; 编译是可以通过,但运行后出现"error send email!"告警窗口,outlook也没启动。请问如何修改?谢谢!谢谢!
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
ljq_2002
一般會員 發表:27 回覆:12 積分:7 註冊:2003-01-02 發送簡訊給我 |
版主:你好!
我在使用如下代码时,出现“无效的类别字符串”是什么原因! 代码如下:
const
olMailItem = 0;
var
Outlook, MailItem: OLEVariant;
begin
try
Outlook := GetActiveOleObject('Outlook.Application');
except
Outlook := CreateOleObject('Outlook.Application');
end; MailItem := Outlook.CreateItem(olMailItem);
MailItem.Recipients.Add('mshkolnik@scalabium.com');
MailItem.Subject := 'your subject';
MailItem.Body := 'Welcome to my homepage: http://www.scalabium.com';
MailItem.Attachments.Add('C:\Windows\Win.ini');
MailItem.Send; Outlook := Unassigned;
end;
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
在 registry 中搜尋機碼 ProjID 值為 Outlook.Application 的字串
像小弟的是 Outlook.Application.9
所以改成以下試試:
begin try Outlook := GetActiveOleObject('Outlook.Application.9'); except Outlook := CreateOleObject('Outlook.Application.9'); end; end;-- 將進酒 杯莫停 與君歌一曲 請君為我傾耳聽 發表人 - hagar 於 2003/01/14 12:07:07 |
ljq_2002
一般會員 發表:27 回覆:12 積分:7 註冊:2003-01-02 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
ljq_2002
一般會員 發表:27 回覆:12 積分:7 註冊:2003-01-02 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |