【发布时间】:2020-07-30 15:34:48
【问题描述】:
当 CDO.message(SMTP 服务器)VBA 代码运行时,它会检查该 gmail ID(我们从中发送电子邮件)是否与当前系统相关联。如果它在我们从未使用该 gmail id 登录的新系统上运行,那么它会给出服务器失败错误并且不会发送电子邮件。所以我想用其他方式询问代码(可能是gmail api),它不会检查系统与gmail ID的链接。 以下是我正在使用的代码
Dim iMsg As Object
Dim iConf As Object
Dim strbody As String
Dim Flds As Variant
Dim email As String
Dim pass As String
Dim CN As String
Dim OS As String
Set iMsg = CreateObject("CDO.Message")
Set iConf = CreateObject("CDO.Configuration")
iConf.Load -1
Set Flds = iConf.Fields
With Flds
.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = 1
.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = FF
.Item("http://schemas.microsoft.com/cdo/configuration/smtpaccountname") = "abcd"
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = DD
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465
.Update
End With
With iMsg
Set .Configuration = iConf
.To = FF
.CC = ""
.BCC = ""
.From = """from"" <Reply@something.nl>"
.Subject = UN & " C1 LOGGED IN"
.TextBody = "COMPUTER NAME IS -" & CPN & ", USERNAME NAME IS -" & UN & ", COMPUTER ID IS -" & sAns
.Send
End With
Set iMsg = Nothing
Set iConf = Nothing
Set Flds = Nothing
Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic
【问题讨论】:
-
嗨!因此,为了澄清起见,您基本上希望能够使用Gmail API 从 CDO VBA 代码发送电子邮件,对吧?
Gmail Id到底是什么意思? -
Gmail id 表示我们在 gmail 上的电子邮件 ID,例如 abcd@gmail.com。
-
问题是,如果我在 cdo 代码中使用 abcd@gmail.com 向某人发送电子邮件,那么它在我的电脑上运行良好,因为我已经在我的 chrome 浏览器中登录 abcd@gmail.com .但是,如果相同的 VBA 在远处的其他电脑上运行,那么它会失败,并且会向 abcd@gmail.com 发送一封电子邮件,说“登录尝试被阻止”。所以谷歌认为有人未经授权试图登录我的帐户(abcd@gmail.com)并阻止它。所以我想要一种适用于每个位置的每台电脑的方法。希望你能理解。
-
当我搜索其他发送电子邮件的方法是 Gmail API 但没有找到任何用于 excel VBA 的代码。