使用VBA在Outlook不可用时从Excel发送电子邮件

使用VBA在Outlook不可用时从Excel发送电子邮件,excel,vba,email,outlook,remote-access,Excel,Vba,Email,Outlook,Remote Access,当下属在Excel工作表中进行任何更新时,我想向利益相关者发送一封电子邮件。我希望使用Workbook_BeforeSave事件,从下属的Outlook帐户触发电子邮件 下级/用户需要在其系统中配置/安装Outlook。如果没有,邮件将不会被触发 有没有办法克服这一问题,例如将邮件触发请求发送到Outlook已预配置的远程计算机/服务器,并使用通用或集中的电子邮件id将邮件从该计算机/服务器发送给干系人 私有子工作簿\u在SaveByVal SaveAsUI作为布尔值之前,取消作为布尔值 将Ou

当下属在Excel工作表中进行任何更新时,我想向利益相关者发送一封电子邮件。我希望使用Workbook_BeforeSave事件,从下属的Outlook帐户触发电子邮件

下级/用户需要在其系统中配置/安装Outlook。如果没有,邮件将不会被触发

有没有办法克服这一问题,例如将邮件触发请求发送到Outlook已预配置的远程计算机/服务器,并使用通用或集中的电子邮件id将邮件从该计算机/服务器发送给干系人

私有子工作簿\u在SaveByVal SaveAsUI作为布尔值之前,取消作为布尔值 将OutApp设置为Outlook.Application Dim objOutlookMsg作为Outlook.MailItem Dim objOutlookRecip作为收件人 将收件人设置为收件人 Set-OutApp=CreateObjectOutlook.Application 设置objOutlookMsg=OutApp.CreateItemolMailItem Set Recipients=objOutlookMsg.Recipients 设置objOutlookRecip=Recipients。Addreceiver@domain.com objOutlookRecip.Type=1 objOutlookMsg.SentOnBehalfOfName=sender@domain.com objOutlookMsg.Subject=测试此宏 objOutlookMsg.HTMLBody=测试此宏 对于objOutlookMsg.Recipients中的每个objOutlookRecip 解决问题 下一个 objOutlookMsg.显示 objOutlookMsg.发送 设置应用程序=无 端接头 专用子命令按钮1\u单击 关于错误转到错误处理程序

' SET Outlook APPLICATION OBJECT.
Dim objOutlook As Object
Set objOutlook = CreateObject("Outlook.Application")

' CREATE EMAIL OBJECT.
Dim objEmail As Object
Set objEmail = objOutlook.CreateItem(olMailItem)

With objEmail
    .to = "webadmin@encodedna.com"
    .Subject = "This is a test message from Arun Banik"
    .Body = "Hi there"
    .Display        ' DISPLAY MESSAGE.
End With

' CLEAR.
Set objEmail = Nothing:    Set objOutlook = Nothing
    
错误处理程序: ' 端接头

您只需使用.Send属性更改.Display属性

With objEmail
    .to = "arunbanik21@rediffmail.com"
    .Subject = "This is a test message from Arun"
    .Body = "Hi there"
    .Send       ' SEND THE MESSAGE.
End With
有关更多信息,请查看此处,

按照以下步骤操作

我们需要从Outlook发送电子邮件。由于Outlook是外部对象,我们需要做的第一件事是将对象引用设置为“Microsoft Outlook 16.0对象库”。 在VBA中,转到工具>参考。 现在我们将看到对象引用库。在此窗口中,我们需要设置对“Microsoft Outlook 16.0对象库”的引用 设置对象参照后,单击“确定”。 现在我们可以在VBA编码中访问Outlook对象 更多信息,请您尝试一下本文中提到的


非常感谢。但您的代码仅在outlook已预配置时有效。如果未配置/安装Outlook,它将不起作用。然后,请按照本文所述进行尝试,虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,仅链接的答案可能无效。-Outlook应用程序未安装在用户的计算机上。实际上,我希望使用通用邮件id从远程系统向利益相关者发送电子邮件通知
With objEmail
    .to = "arunbanik21@rediffmail.com"
    .Subject = "This is a test message from Arun"
    .Body = "Hi there"
    .Send       ' SEND THE MESSAGE.
End With
Sub SendEmail_Example1()
    Dim EmailApp As Outlook.Application 'To refer to outlook application
    Set EmailApp = New Outlook.Application 'To launch outlook application
    Dim EmailItem As Outlook.MailItem 'To refer new outlook email
    Set EmailItem = EmailApp.CreateItem(olMailItem) 'To launch new outlook 
    email
    EmailItem.To = "Hi@gmail.com"
    EmailItem.CC = "hello@gmail.com"
    EmailItem.Subject = "Test Email From Excel VBA"
EmailItem.HTMLBody = "Hi," & vbNewLine & vbNewLine & "This is my first email from Excel" & _
                    vbNewLine & vbNewLine & _
                    "Regards," & vbNewLine & _
                    "VBA Coder" 'VbNewLine is the VBA Constant to insert a new line
    EmailItem.Send
End Sub