标题:在win7下能用cdo.message发邮件吗?
只看楼主
潇洒人间一剑仙
Rank: 2
等 级:论坛游民
威 望:1
帖 子:140
专家分:48
注 册:2008-9-19
结帖率:83.33%
已结贴  问题点数:20 回复次数:7 
在win7下能用cdo.message发邮件吗?
在xp下运行的程序,在win7下报错,提示配置不可用
代码如下:
oMSG = CREATEOBJECT('cdo.message')
oMSG.To = 'me@'
oMSG.From = 'me'
oMSG.Subject = 'Hello Email'
oMSG.TextBody = 'This is an easy way to create an email'
oMSG.Send()
release oMSG
因为我以前是在outlook express里设好账号的,win7下没有outlook,用的是foxmail。
我启用了smtp服务,并在iis里设置了账号信息。不管用
我又尝试用Configuration对象更新fields,但是在update的时候也同样出错。
有什么办法能解决吗?特来请教
搜索更多相关主题的帖子: 账号 win7 message Email 发邮件 
2019-11-22 18:42
fown
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:58
帖 子:1229
专家分:171
注 册:2005-5-26
得分:10 
邮件好像离我很遥远了吧,我几年没用过了,好像与世隔绝了一样。
cdosys.dll
这个你看看,是不是这个的原因。
system32文件夹下

有人说VFP不行了,我想说,你连VFP十分之一的功能都不会用,你怎么知道VFP不行?本人拒绝回答学生的问题我回答问题一般情况下只提供思路不提供代码,请理解
2019-11-22 22:03
潇洒人间一剑仙
Rank: 2
等 级:论坛游民
威 望:1
帖 子:140
专家分:48
注 册:2008-9-19
得分:0 
回复 2楼 fown
这个文件有的,不然createobject的时候就出错了吧。
我还用regsvr32注册了一下,也没用。
2019-11-22 22:17
潇洒人间一剑仙
Rank: 2
等 级:论坛游民
威 望:1
帖 子:140
专家分:48
注 册:2008-9-19
得分:0 
在运行到send()命令时出错,说配置不可用
如果使用cdo的Configuration对象设置邮件账号,在update()时也会出错
2019-11-22 22:27
潇洒人间一剑仙
Rank: 2
等 级:论坛游民
威 望:1
帖 子:140
专家分:48
注 册:2008-9-19
得分:0 
问题解决了,走了很多弯路,还是用配置Configuration的办法,网上的代码有个错误,填发件人的地方填服务器地址就对了。真是奇怪,因为还有一个SMTP服务器地址也要填同样的地址。
2019-11-23 09:43
pjtyzyq
Rank: 4
等 级:业余侠客
威 望:6
帖 子:230
专家分:240
注 册:2016-2-14
得分:0 
以下是引用潇洒人间一剑仙在2019-11-23 09:43:47的发言:

问题解决了,走了很多弯路,还是用配置Configuration的办法,网上的代码有个错误,填发件人的地方填服务器地址就对了。真是奇怪,因为还有一个SMTP服务器地址也要填同样的地址。

也需要这个,能公开你的代码吗?
2019-11-23 12:31
潇洒人间一剑仙
Rank: 2
等 级:论坛游民
威 望:1
帖 子:140
专家分:48
注 册:2008-9-19
得分:0 
回复 6楼 pjtyzyq
我的代码在办公室电脑上,我参考的是下面这段代码。
#define USERNAME \'your name\' && 这里填你登录的账号
#define MAILPASSWORD \'your pass\' && 这里填你登录的口令
#define MAILFROM USERNAME + \'@\' && 这里填你邮箱后缀
#define MAILTO MAILFROM
#define MAILACCOUNT MAILFROM
TRY
m.oMsg = NEWOBJECT( \'CDO.Message\' )
CATCH
m.oMsg = NULL
ENDTRY
IF ISNULL( m.oMsg )
MESSAGEBOX( \'无法创建邮件对象!\', 16, \'错误\' )
RETURN .F.
ENDIF
m.oConfg = NEWOBJECT( \'CDO.Configuration\' )
m.oFields = m.oConfg.Fields
m.cSchemas = \'http://schemas.\'
WITH m.oFields
.item( m.cSchemas + \'sendusing\' ) = 2
.item( m.cSchemas + \'smtpserverport\' ) = 25
.item( m.cSchemas + \'smtpaccountname\' ) = MAILFROM
.item( m.cSchemas + \'sendusername\' ) = MAILACCOUNT
.item( m.cSchemas + \'sendpassword\' ) = MAILPASSWORD
.item( m.cSchemas + \'smtpauthenticate\' ) = 1
.item( m.cSchemas + \'languagecode\' ) = 0x0804
.item( m.cSchemas + \'smtpserver\' ) = \'smtp.\'
.Update()
ENDWITH
m.oMsg.Configuration = m.oConfg
WITH m.oMsg
.Subject = \'客户端软件升级报告\'
.From = MAILFROM
.To = MAILTO
.TextBody = \'客户端软件升级报告\'
AA = SYS(5) + SYS(2003) + \'\\datasetup.ini\' &&附件地址及名称
.ADDATTACHMENT(AA)
ENDWITH
TRY
m.oMsg.Send()
m.cMsg = \'邮件已发送.\'
m.oErr = NULL
CATCH TO m.oErr
TEXT TO m.cMsg NOSHOW TEXTMERGE
邮件发送失败!
<<oErr.Message>>
ENDTEXT
ENDTRY
STORE NULL TO m.oConfog, m.oMsg
MESSAGEBOX( m.cMsg )
2019-11-23 15:11
gxbsdzf
Rank: 2
等 级:论坛游民
帖 子:28
专家分:23
注 册:2019-11-26
得分:10 
myfll.fll里有专门用于邮件收发的函数,虽没用过,但看示例感觉更方便、易用,而且是vfp专用的。建议参考一下。
2019-11-29 12:30



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-497993-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015387 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved