以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  【使用QQ邮箱发送邮件】前提是不是必须本机要登录QQ  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=99941)

--  作者:ycli368
--  发布时间:2017/4/30 16:29:00
--  【使用QQ邮箱发送邮件】前提是不是必须本机要登录QQ
我再本地测试OK
软件发布后,报错

.NET Framework 版本:2.0.50727.8669
Foxtable 版本:2017.4.22.1
错误所在事件:自定义函数YanZheng_Sendcode
详细错误信息:
调用的目标发生了异常。
发送邮件失败。
无法连接到远程服务器
由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。 14.17.57.241:25


--  作者:ycli368
--  发布时间:2017/4/30 18:37:00
--  
改成了这个调用可以
官方那个应该是有问题吧
Public Function email_send2b( mailname As String, content As String ) As Boolean
Dim mail As new System.Web.Mail.MailMessage()
try
    Dim drdeploy As DataRow = DataTables("prot_deploy").sqlfind("deid = 1")
    If drdeploy IsNot Nothing Then
        mail.To = mailname
        mail.From = drdeploy("desmtpuser")
        mail.Subject =  "【昱帝电商】验证码"
        
        mail.BodyFormat = System.Web.Mail.MailFormat.Html
        mail.Body = content
        
        mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1") \'//身份验证
        mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", mail.From) \'//邮箱登录账号,这里跟前面的发送账号一样就行
        mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", drdeploy("desmtppass")) \'//这个密码要注意:如果是一般账号,要用授权码企业账号用登录密码
        mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserverport", 465)\'//端口
        mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpusessl", "true")\'//SSL加密
        System.Web.Mail.SmtpMail.SmtpServer = "smtp.qq.com"    \'//企业账号用smtp.exmail.qq.com
        System.Web.Mail.SmtpMail.Send(mail)
        email_send2b = True
        \'msgbox("邮件发送成功  ")
    Else
        
        email_send2b = False
    End If
catch  ex As Exception
    email_send2b = False
End try
End Function
[此贴子已经被作者于2017/4/30 18:37:31编辑过]

--  作者:有点色
--  发布时间:2017/5/2 8:54:00
--  

 你设置好端口和ssl属性了吗?

 

http://www.foxtable.com/webhelp/scr/3230.htm

 

 贴出你写的代码,如果发布前是可以的,而发布后的程序无法发送,应该是你的程序设置有问题,比如 【没有用管理员权限运行】

[此贴子已经被作者于2017/5/2 9:02:14编辑过]

--  作者:ycli368
--  发布时间:2017/5/2 22:25:00
--  
这样发本地可以,放到服务器上报错,确认是管理员权限

Public Function email_send( mailname As String, content As String ) As Boolean


Dim m As New MailSender
Dim drdeploy As DataRow = DataTables("prot_deploy").sqlfind("deid = 1")
If drdeploy IsNot Nothing Then
    m.Host = drdeploy("desmtpserver")
    m.EnableSsl = True \'必须将EnableSsl属性设置为True
    m.Account = drdeploy("desmtpuser")
    m.Password = drdeploy("desmtppass")\'注意这不是QQ密码,是授权码
    m.From = drdeploy("desmtpuser")
    m.To = mailname
    m.Title = "【昱帝电商】验证码"
    m.Content = content
    m.Send()
    \'m.SendAsync()
    
    email_send = True
Else
    email_send = False
    
End If

End Function
[此贴子已经被作者于2017/5/2 22:26:37编辑过]