TC官方合作论坛

标题: 为何不能com调用windows自带的CDO.Message组件 [打印本页]

作者: liuhr_2000    时间: 2015-5-15 13:35
标题: 为何不能com调用windows自带的CDO.Message组件
本帖最后由 liuhr_2000 于 2015-5-15 13:37 编辑

var objMail = com("CDO.Message")
    var objConfig = com("CDO.Configuration")
    objConfig.Fields.
    objConfig.Fields("ht*p://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
    objConfig.Fields("ht*p://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    objConfig.Fields("ht*p://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.163.com"
    objConfig.Fields("ht*p://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
    objConfig.Fields("ht*p://schemas.microsoft.com/cdo/configuration/sendusername") = "liuh"
    objConfig.Fields("ht*p://schemas.microsoft.com/cdo/configuration/sendpassword") = "000"
    objConfig.Fields("ht*p://schemas.microsoft.com/cdo/configuration/languagecode") = "0x0804"
    objConfig.Fields.Update()
    objMail.Configuration = objConfig
    objMail.Subject = "Mail Subject"
    objMail.From = "liuh@163.com"
    objMail.To = "liuh@163.com"
    objMail.HTMLBody = "Mail Body"
    objMail.Send

大神能不能解释一下这个代码为什么不能运行?
作者: jimye0526    时间: 2015-5-15 13:46
objConfig.Fields("ht*p://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
    objConfig.Fields("ht*p://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    objConfig.Fields("ht*p://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.163.com"
    objConfig.Fields("ht*p://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
    objConfig.Fields("ht*p://schemas.microsoft.com/cdo/configuration/sendusername") = "liuh"
    objConfig.Fields("ht*p://schemas.microsoft.com/cdo/configuration/sendpassword") = "000"
    objConfig.Fields("ht*p://schemas.microsoft.com/cdo/configuration/languagecode") = "0x0804"

你这是什么代码 还有这种写法的额

作者: 忆辰辅助    时间: 2015-5-15 13:58
貌似有很多都调用不了
作者: a837198    时间: 2015-5-15 13:59
本帖最后由 a837198 于 2015-5-15 14:00 编辑

一下是vbs的代码 你确定你写的正确么???
  1. C**t Email_From = "still.demon@gmail.com"
  2. C**t Password = "password"
  3. C**t Email_To = "380401911@qq.com"
  4. Set CDO = CreateObject("CDO.Message")
  5. CDO.Subject = "From Demon"
  6. CDO.From = Email_From
  7. CDO.To = Email_To
  8. CDO.TextBody = "Hello world!"
  9. cdo.AddAttachment = "C:\hello.txt"
  10. C**t schema = "http://schemas.microsoft.com/cdo/configuration/"
  11. With CDO.Configuration.Fields
  12. .Item(schema & "sendusing") = 2
  13. .Item(schema & "smtpserver") = "smtp.gmail.com"
  14. .Item(schema & "smtpauthenticate") = 1
  15. .Item(schema & "sendusername") = Email_From
  16. .Item(schema & "sendpassword") = Password
  17. .Item(schema & "smtpserverport") = 465
  18. .Item(schema & "smtpusessl") = True
  19. .Item(schema & "smtpconnectiontimeout") = 60
  20. .Update
  21. End With
  22. CDO.Send
复制代码
请注意红色字体部分  
C**t Email_From = "still.demon@gmail.com"
C**t Password = "password"
C**t Email_To = "380401911@qq.com"
Set CDO = CreateObject("CDO.Message")
CDO.Subject = "From Demon"
CDO.From = Email_From
CDO.To = Email_To
CDO.TextBody = "Hello world!"
cdo.AddAttachment = "C:\hello.txt"
C**t schema = "http://schemas.microsoft.com/cdo/configuration/"
With CDO.Configuration.Fields
.Item(schema & "sendusing") = 2
.Item(schema & "smtpserver") = "smtp.gmail.com"
.Item(schema & "smtpauthenticate") = 1
.Item(schema & "sendusername") = Email_From
.Item(schema & "sendpassword") = Password
.Item(schema & "smtpserverport") = 465
.Item(schema & "smtpusessl") = True
.Item(schema & "smtpconnectiontimeout") = 60
.Update
End With

CDO.Send



作者: liuhr_2000    时间: 2015-5-15 14:03
jimye0526 发表于 2015-5-15 13:46
objConfig.Fields("ht*p://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
    objConfi ...

这是cdo组件内的函数的标准写法吧
作者: jimye0526    时间: 2015-5-15 14:05
com写法跟组件内有神马关系,关系的是调用方吧,你用tc调用,遵从tc的语法规则,用e遵从e的规则
作者: liuhr_2000    时间: 2015-5-15 14:06
a837198 发表于 2015-5-15 13:59
一下是vbs的代码 你确定你写的正确么???
请注意红色字体部分  
C**t Email_From = "still.demon@gmail.c ...

vbs 这个我试过了 一运行就死机  不知道大侠试过没?
作者: liuhr_2000    时间: 2015-5-15 14:07
强烈建议tc增加发邮件功能,用dllcall带个dll文件的拖油瓶总是不爽。看来这个程序我要用vb搞定了
作者: a837198    时间: 2015-5-15 14:43
liuhr_2000 发表于 2015-5-15 14:07
强烈建议tc增加发邮件功能,用dllcall带个dll文件的拖油瓶总是不爽。看来这个程序我要用vb搞定了 ...

你用vb做个dll文件 也可以去调用的
作者: liuhr_2000    时间: 2015-5-15 22:16
jimye0526 发表于 2015-5-15 14:05
com写法跟组件内有神马关系,关系的是调用方吧,你用tc调用,遵从tc的语法规则,用e遵从e的规则 ...

就是遵守tc的语法啊 但是 不论谁调用函数内部的参数结构是不会变的啊。请赐教  这个cdo组件在tc里该怎么写




欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1