我正在尝试将Sendgrid SMTP与excel集成,以便直接从excel表发送电子邮件。下面给出的代码返回一个错误:"邮件无法发送到SMTP服务器"。错误图像
Sub Manufactureremail1()
'sends email to manufacturer using Sendgrid
'Application.ScreenUpdating = False
'While (True)
Dim iMsg As Object
Dim iConf As Object
Dim strbody As String
' Dim Flds As Variant
Set iMsg = CreateObject("CDO.Message")
Set iConf = CreateObject("CDO.Configuration")
iConf.Load -1 ' CDO Source Defaults
Set Flds = iConf.Fields
With Flds
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") _
= "smtp.sendgrid.net"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 587
.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "myusername"
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "mypassword"
.Update
End With
With iMsg
Set .Configuration = iConf
.To = Application.WorksheetFunction.VLookup(Selection.Cells(2, 1), Worksheets("Contacts").Range("email_data"), 2, False)
.CC = ""
'.BCC = Application.WorksheetFunction.VLookup(Selection.Cells(2, 3), Worksheets("Contacts").Range("email_data"), 2, False)
.From = """Yash"" <yashagarwal080@gmail.com>"
.Subject = "Order of " & Selection.Cells(2, 3)
'.addattachment Worksheets("Contacts").Range("I6")
'.addattachment Worksheets("Contacts").Range("I7")
.htmlBody = "Message"
.send
'MsgBox "Emails Sent!", vbInformation, "Success"
End With
'DoEvents
'Wend
'Application.ScreenUpdating = True
End Sub
通过添加将您的配置设置为使用SSL
.项目("http://schemas.microsoft.com/cdo/configuration/smtpusessl")=1
Yash,我用邮件服务器配置测试了您的代码,它对我来说很好,只做了两件事。1.我在工具->参考中引用了Microsoft CDO。2.我将端口地址更改为25