正在做一个项目,想加入一个邮件发送功能,开发工具powerbuilder,利用jmail
部分代码如下
--------------
OLEobject JmailmailMessage
JmailmailMessage =CREATE OLEObject
ret =JmailmailMessage.ConnectToNewObject("jmail.Message")
if ret>=0 then
JmailmailMessage.Charset = "GB2312"
JmailmailMessage.ContentTransferEncoding = "base64"
JmailmailMessage.Encoding ="base64"
JmailmailMessage.ISOEncodeHeaders =true
JmailmailMessage.silent = false
JmailmailMessage.Logging = True
JmailmailMessage.MailServerUserName = myaccount //发件邮箱登录账户 gmail
JmailmailMessage.MailServerPassword = mypassword //发件邮箱用户密码
JmailmailMessage.priority=2
JmailmailMessage.from=myaccount //发件邮箱登录账户
JmailmailMessage.fromname="总经理"
JmailmailMessage.addrecipient(recepientaccount) //收件用户帐户
JmailmailMessage.subject='check'
JmailmailMessage.body='只是来看看行不行'
if JmailmailMessage.send("smtp.gmail.com") then //gmail的smtp服务器
messagebox("提示","发送成功!")
else
messagebox("提示","发送失败")
end if
JmailmailMessage.close()
destroy jmailmailmessage
else //ret < 0;
messagebox("提示","连接失败")
destroy jmailmailmessage
end if
---------------------
每次运行都提示
error calling external object function send at ......
......是我在空间的clicked事件里调用send的地方......
这个问题困扰我很久了,哪位牛人帮忙给解决一下,多谢多谢~~~~~~
------解决方案--------------------
先注册:
regsvr32.exe jmail.dll
另外:
你要写try...catch...end try去截获错误。
------解决方案--------------------
你重新下载一个jmail注册吧。
jmail的收发邮件我都实现过,肯定没问题的
------解决方案--------------------
你写的程序我没有看,这是我目前正在使用的程序SEND():
oleobject jmail
String friendemail
Long ll_status
String err_msg
try
jmail = Create oleobject
ll_status = jmail.ConnectToNewObject( "jmail.message")
catch (oleruntimeerror er)
messagebox('','发送邮件时发生错误,不能生成邮件对象')
return 0
end try
err_msg=gf_mail_err(ll_status)
If ll_status <> 0 Then
messagebox('','给“'+ls_from+'”发送出错,'+err_msg)
Destroy jmail
Return 1
End If
try
Jmail.Charset ="“GB2312"
Jmail.Encoding="base64";
Jmail.ContentTransferEncoding = "base64"
JMail.ContentType = "text/html"
jmail.From = smtp_user //' 发送者地址
jmail.fromname = title_name// ' 发送者姓名
jmail.Subject =file_name// ' 邮件主题
jmail.mailserverusername = smtp_user //'身份验证的用户名
jmail.mailserverpassword = smtp_pass// ' 身份验证的密码
jmail.priority = 3//设置优先级,范围从1到5,越大的优先级越高,3为普通
jmail.AddRecipient(ls_from)//接收人邮件地址
Jmail.ISOEncodeHeaders = True
Jmail.silent = True
Jmail.Logging = True
JMail.AddAttachment( send_file+'\'+file_name,false,'') //邮件附件添加
jmail.body ="SYNC"
If jmail.Send(smtp_server) = False Then//is_smtp_name+":"+is_stmp_port
messagebox('','给“'+ls_from+'”发送文件:“'+send_file+'\'+file_name+'”不成功')
jmail.Close()
Destroy jmail
return 2
else
messagebox('','给“'+ls_from+'”发送文件:“'+send_file+'\'+file_name+'”成功')
End If
jmail.Close()
Destroy jmail
catch (oleruntimeerror er1)
messagebox('','发送邮件时发生错误,不能发送邮件对象')
Destroy jmail
return 0
end try
return 0
------解决方案--------------------
JMAIL在PB中确实有不稳定的表现.
JMAIL版本比较多,有些收费的很稳定,而其它版本总是出现奇怪的问题.
------解决方案--------------------