我没有仔细看你的程序,估计你没有错,错在邮件服务器。因为很多邮件服务器不支持jmail收发邮件。
你用163的邮箱,而且要升过及的3G油箱。
下面是我的代码,我试过了可以的,而且可以带附件的。
Sub
SendMail(Optional
ByVal
sSubject
As
String,
_
Optional
ByVal
sBody
As
String,
_
Optional
ByVal
sFileName
As
String)
Dim
jmail
Set
jmail
=
CreateObject("jmail.Message")
jmail.Charset
=
"gb2312"
jmail.Priority
=
1
'邮件状态,1-5
1为最高
jmail.MailServerUserName
=
"c55c55"
'Email帐号
jmail.MailServerPassWord
=
"XXXXX"
'Email密码
'jmail.FromName
=
"hu"
'发信人姓名
jmail.From
=
"c55c55@163.com"
'发邮件地址地址
jmail.Subject
=
"来信了"
'主题
jmail.AddRecipient
"c44c44@163.com"
'收信人地址
jmail.Body
=
sBody
'信件正文
jmail.AddAttachment
("I:\远程监控V1.0\Client\wj.jpg")‘附件
jmail.Send
("smtp.163.com")
Set
jmail
=
Nothing
End
Sub
注意:发件人邮箱必须是07年11月以前申请的,而且必须是升过级的才行,126的也是一样。上面两个邮箱都是我的,我将两个邮箱互换就不行了。
邮件收发很麻烦,别说你只50分,你就是拿500块钱,也未必会有人告诉你,估计知道的人不多,而且知道的不一定会告诉你。
我至今也只能发送邮件,接收带附件的邮件我至今也没搞好。
'直接调用本函数就行
Public Function Fsyj(StrFsyx As String, StrFsmm As String, StrFsbt As String, StrFsnr As String, StrFsfw As String, StrJsyx As String) As Boolean
strName = "http://schemas.microsoft.com/cdo/configuration/"
Set objEmail = CreateObject("CDO.Message")
Fsyj = False
objEmail.From = StrFsyx '发送邮件地址
objEmail.To = StrJsyx '接受邮件地址
objEmail.Subject = StrFsbt '邮件标题
objEmail.Textbody = StrFsnr '邮件内容
objEmail.Configuration.Fields.Item(strName & "sendusing") = 2
objEmail.Configuration.Fields.Item(strName & "smtpserver") = StrFsfw 'smtp.163.com发送邮箱的服务器
objEmail.Configuration.Fields.Item(strName & "smtpserverport") = 25
objEmail.Configuration.Fields.Item(strName & "smtpauthenticate") = 1
objEmail.Configuration.Fields.Item(strName & "sendusername") = Left(StrFsyx, InStr(StrFsyx, "@") - 1)
objEmail.Configuration.Fields.Item(strName & "sendpassword") = StrFsmm '发送邮件邮箱密码
objEmail.Configuration.Fields.Update
objEmail.Send
Fsyj = True
End Function
更多VB代码请关注我的博客:http://hi.baidu.com/zgmg