以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]调用outlook邮箱的smtp发邮件报错  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=179781)

--  作者:azlm100
--  发布时间:2022/9/8 15:37:00
--  [求助]调用outlook邮箱的smtp发邮件报错
使用foxtable调用outlook邮箱的smtp功能来自动发送邮件。
执行的时候会报错,更换其他账号一样。
是不是我调用smtp的命令有缺少什么?
各位大神有遇到过这种问题的吗?


Dim m As New MailSender
m.Host = "smtp-mail.outlook.com"
m.port = 587
m.EnableSsl = True
m.Account = "XXX@.com"
m.Password = "XXXX"
m.From = "XXXX@XXXX.com"
m.To = "XXX@XXX.com"
m.Title = "测试邮件"
m.C
m.send()


图片点击可在新窗口打开查看


[此贴子已经被作者于2022/9/8 15:39:57编辑过]

--  作者:有点蓝
--  发布时间:2022/9/8 16:01:00
--  
建议还是使用.net的用法吧:https://www.cnblogs.com/xpnew/p/Csharp_SMTP_outlook_bulletin.html
--  作者:azlm100
--  发布时间:2022/9/12 15:57:00
--  
以下是引用有点蓝在2022/9/8 16:01:00的发言:
建议还是使用.net的用法吧:https://www.cnblogs.com/xpnew/p/Csharp_SMTP_outlook_bulletin.html

Dim client As New System.Net.Mail.SmtpClient()
Dim message As New System.Net.Mail.MailMessage()
client.Host = "smtp-mail.outlook.com"
client.Port = 587
client.EnableSsl = True
client.Credentials = New System.Net.NetworkCredential("tbfcXXX@toyota.com", "XXXXXX")  \'普通邮箱
message.From = new System.Net.Mail.MailAddress("moumou.li@toyota.com","李XX") \'发件人
client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network
message.BodyEncoding = System.Text.Encoding.UTF8
message.Subject =  "测试邮件"
message.IsBodyHtml = True
message.To.Add(new System.Net.Mail.MailAddress("moumou.he@toyota.com","何XX")) \'如果有365邮箱的人就发送到365邮箱
message.Body = "测试"
Try
    client.Send(message)
    vars("发送成功") =  1
Catch ex As Exception
    vars("发送成功") =  0
     MessageBox.Show(ex.message ,"提示")
Finally
    message.Dispose()
End Try



大佬,我查看了很多资料,更换了这种方式,可是还是会报错。是因为STARTTLS加密方式的原因吗?


--  作者:有点蓝
--  发布时间:2022/9/12 16:29:00
--  
2楼链接【3.3 关于STARTTLS】不就是说这个的吗?加上targetname呀
--  作者:azlm100
--  发布时间:2022/9/12 17:07:00
--  
以下是引用有点蓝在2022/9/12 16:29:00的发言:
2楼链接【3.3 关于STARTTLS】不就是说这个的吗?加上targetname呀

Dim client As New System.Net.Mail.SmtpClient()
Dim message As New System.Net.Mail.MailMessage()
client.UseDefaultCredentials = False
client.Credentials = New System.Net.NetworkCredential("xxxx@toyota.com", "XXXX")  \'普通邮箱
client.Host = "smtp-mail.outlook.com"
client.targetname = "STARTTLS/smtp-mail.outlook.com"
client.Port = 587
client.EnableSsl = True
message.From = new System.Net.Mail.MailAddress("moumou.li@toyota.com","李XX") \'发件人
client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network
message.BodyEncoding = System.Text.Encoding.UTF8
message.Subject =  "测试邮件"
message.IsBodyHtml = True
message.To.Add(new System.Net.Mail.MailAddress("moumou.he@toyota.com","何XX")) \'如果有365邮箱的人就发送到365邮箱
message.Body = "测试"
Try
    client.Send(message)
    vars("发送成功") =  1
Catch ex As Exception
    vars("发送成功") =  0
     MessageBox.Show(ex.message ,"提示")
Finally
    message.Dispose()
End Try

不好意思,我贴错代码了。,这个才是最新的。我增加了targetname跟seDefaultCredentials这两个参数,但是还是发送失败。

[此贴子已经被作者于2022/9/12 17:08:58编辑过]

--  作者:有点蓝
--  发布时间:2022/9/12 17:13:00
--  
那我也不知道什么原因了。建议到微软社区咨询一下