主题:在邮件文本中如何书写超链接?
masachik
[专家分:540] 发布于 2008-12-13 23:39:00
无论用哪种方式在VFP编写的程序中发送邮件,要直接发送,都要将文本斌给一个变量。如果这时需要在文本中引用超链接地址,该如何处理呢?
最后更新于:2008-12-14 23:22:00
回复列表 (共27个回复)
21 楼
masachik [专家分:540] 发布于 2008-12-16 00:55:00
谢谢moz与cb1518二位的指点。
22 楼
moz [专家分:37620] 发布于 2008-12-16 20:56:00
SET是VB中的对象的赋值语句.
如果条件允许,为什么不用VFP9来试验呢?
只是坦白说,我不是江郎也才尽了.
23 楼
masachik [专家分:540] 发布于 2008-12-18 00:53:00
我换用了VFP8.0做试验。MOZ前辈在八楼给的代码(设置有修改,见附一)在VFP8中能通过(在VFP5中五个函数会报错),执行SEND时无反应,打开Outlook Express 可收到用它发出的信,无HtmlBody设置才会显示Textbody设置的内容,链接显示刚好在需要的位置显示链接提示。
mr=CreateObject("Microsoft.XMLHTTP")对象在VFP8与VFP5中都会出现相同问题:发送写为mr.send时需要点击发送键,内容中的网址不能转为链接,写为mr.send(0)或mr.send(1)时,不出现写邮件对话框,但内容没了同时出现一个2字节的名为POSTDATA.ATT的附件(在VFP5中mr.send 0或mr.send 1与mr.send一样)。
olee=Createobject("outlook.application")对象在VFP8与VFP5中都会出现找不到application类定义错误。
附一:
Email = CreateObject("CDO.Message")
Email.From = "masachik@yeah.net" &&"vfp001@sohu.com"
Email.To = "masach@163.com" &&"mozoho@163.com"
Email.Subject = "国内空运代理!"
Email.Textbody = "你收到用VFP代码发送的邮件了!"
Email.HtmlBody="国内航空货运:<a href=http://www.sz3tt.cn>三通物流</a>"
Email.AddAttachment("C:\boot.ini")
Email.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
Email.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") ="smtp.yeah.net" &&"smtp.sohu.com"
Email.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
Email.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") ="masachik" &&"vfp001"
Email.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "78546987125648" &&"123456"
Email.Configuration.Fields.Update
Email.Send
24 楼
moz [专家分:37620] 发布于 2008-12-18 21:06:00
Outlook.Application的关键是你的操作系统中有没有安装Office Outlook
跟你所用的VFP版本没有关系。
你居然能Send成功?奇怪。
25 楼
masachik [专家分:540] 发布于 2008-12-19 22:01:00
看来在VFP中创建对象,定义API函数,必须注意系统环境。不知引入那些对象后的VFP程序,编译后制作安装程序时要做哪些处理,才能保证在未知的其他机器上能正常执行。
26 楼
moz [专家分:37620] 发布于 2008-12-19 22:40:00
请参考:
[quote]
PROCEDURE CheckExcel
IF TYPE("Excel.name")="U"
release Excel
public Excel
TRY
Excel=GETOBJECT(,"Excel.application")
CATCH
try
Excel=CREATEOBJECT("Excel.application")
catch
messagebox("创建EXCEL对象失败")
endtry
ENDTRY
ENDIF
ENDPROC[/quote]
27 楼
masachik [专家分:540] 发布于 2008-12-20 11:18:00
谢谢MOZ前辈。不过您在楼上提供的是不能创建对象就避开以保证程序正常运行的方法。用VFP编程,编程时用的类库能编译进EXE文件,制作安装文件时并不再需要编程时用的库文件。当引用外部程序的类创建了对象,编译后的EXE文件,安装时不做特别处理,在没有那种外部程序的环境中能运行吗?
我来回复