我刚刚注册了sendgrid,以便从asp.net/vb.net应用程序发送电子邮件。我不使用API。我不想使用API。我只想使用我一直使用的现有DotNetOpenMail库,并连接到sendgrid来发送电子邮件。
Dim newmail1 As New EmailMessage
adding body, from, to, bla bla bla
Dim newserver2 As New SmtpServer("smtp.sendgrid.net", 587)
Dim at2 As SmtpAuthToken = New SmtpAuthToken("apikey", "SG.XXXXXXXXXX")
newserver2.SmtpAuthToken = at2
newmail1.Send(newserver2)
很明显,XXXXX是我生成的API KEY。我收到此错误
身份验证失败:提供的授权授予无效,已过期或已撤销。
当我配置发件人身份验证时,我进行了完全访问。我不知道为什么这是个问题。
我的应用正在使用SSL。我以为也许我会将端口切换到465,然后重试,但是当我挂起时就挂了。我调试,它挂在.Send行上,实际上只是坐在那里进行处理。我放开了它,并在24小时前返回,浏览器仍在运行。我在我的应用中使用TLS 1.2,因此我更喜欢使用端口587。
答案 0 :(得分:0)
结果证明,DotNetOpenMail对于SendGrid并不是那么好。一切都很好,但是我切换到System.Net.Mail,一切正常。也许是System.Net.Mail使用networkcredentials对象而dotnotopenmail使用authtoken的事实?
答案 1 :(得分:0)
这种方式对我有效:
Dim objat2 As New DotNetOpenMail.SmtpAuth.SmtpAuthToken("user", "pass")