代码之家  ›  专栏  ›  技术社区  ›  Matthew Hopkins

无法使用VBA发送电子邮件

  •  1
  • Matthew Hopkins  · 技术社区  · 10 年前

    我正在创建一个自动发送电子邮件的工具。

    我已经开始使用非常简单的代码构建它,如下所示:

    Set outlookobj = New Outlook.Application
    Set mitem = outlookobj.CreateItem(olMailItem)
    
    With mitem
    .To = "A_Valid_Email@email.com"
    .Subject = "TEST"
    .Body = "test"
    .Display
    .Send
    
    End With
    End Sub
    

    然而,我工作的公司似乎已经关门了。电子邮件将创建良好,但不会发送。有人能想出办法吗?我曾考虑过使用.sendkeys“^{ENTER}”,但我知道这不是一种好的做事方式。

    提前谢谢你 马特

    2 回复  |  直到 5 年前
        1
  •  0
  •   Community Mohan Dere    8 年前

    我指的是这条线索: Excel VBA sending mail using Outlook - Send method fails 其中溶液如下:

    更改。发送到。显示并将发送键“^{ENTER}”放在With斜线之前

    你至少可以试试,也许它也对你有用

        2
  •  0
  •   Hambone    10 年前

    如果您不使用Outlook,可以使用CDO发送电子邮件。我不确定这是否能解决您的安全问题,但可能值得一试。这是一个例子。

    Sub CDO_Mail_Small_Text(ByVal RecipientList As String, ByVal From As String, _
            ByVal Subject As String, ByVal Body As String, ByVal Attachment As String, _
            ByVal cc As String)
        Dim iMsg As Message
        Dim iConf As Configuration
        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") _
                           = "webmail.zimmer.com"
            .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
            .Update
        End With
    
        With iMsg
            Set .Configuration = iConf
            .To = RecipientList
            .cc = cc
            .From = From
            .Subject = Subject
            .HTMLBody = Body
        End With
    
        If Attachment <> "" Then
            iMsg.AddAttachment Attachment
        End If
    
        iMsg.Send
    
    End Sub
    

    顺便说一句,这还有一个额外的好处,可以让你恶搞发送者,让它看起来像是来自其他人。我不知道这是否方便,但仅供参考。