4

我在 Outlook 中构建了一个自定义表单,可以在任何更改时发送电子邮件通知。由于表单的规范,我不得不在表单中添加一些 VBScript(不幸的是)在表单的关闭事件上发送电子邮件。

该表格目前已发布并且运行良好。唯一出现的问题是我是唯一一个使用以下对话框提示的表单的用户:

在此处输入图像描述

没有其他人使用该表单正在获取对话框。 此对话框强制您等到进度条完成后再“允许”您发送电子邮件(大约 5 秒)。 是因为我是出版商吗?还是我遇到的客户端设置? 如何禁用这只小狗?

如果其相关heres来源:

Sub SendAttach() 
   'Open mail, adress, attach report
   Dim objOutlk             'Outlook
   Dim objMail                  'Email item
   Dim strMsg
   Const olMailItem = 0

  'Create a new message
   set objOutlk = createobject("Outlook.Application")
   set objMail = objOutlk.createitem(olMailItem)
   objMail.To = Item.UserProperties("Assigned To")
   objMail.cc = Item.UserProperties("Bcc")

   'Set up Subject Line
   objMail.subject = "Work Order Notifications: " & Item.UserProperties("Work Order Number") & " - " & _
                Item.UserProperties("Subject") & " Due " & Item.UserProperties("Due Date")

   'Add the body    
   strMsg = Item.UserProperties("Specifications") & vbcrlf
   strMsg = strMsg & Item.UserProperties("Constraints")

   objMail.body = strMsg
   objMail.display 'Use this to display before sending, otherwise call objMail.Send to send without reviewing

   objMail.Send
   'Clean up
   set objMail = nothing
   set objOutlk = nothing
End sub

这里的安全不是问题。如果有人设法从我的工作站开始发送电子邮件,我遇到的问题比电子邮件欺骗要严重得多!

作为旁注,我无法确定 SO 或 SU 是否是这个问题的最佳位置。如有必要,请相应地重定向。

4

4 回答 4

3

我在尝试完成一些稍微不同的事情时遇到了这个问题,但为此目的是相同的。HK 提供的链接有助于阅读并有助于了解正在发生的事情,但最后我选择不使用页面上讨论的任何选项。相反,我保持简单,并决定愚弄 Outlook 认为我正在发送电子邮件而不是自动化过程,我通过将 objMail.Send 替换为 SendKeys 替代来模仿自己按下发送按钮,有点难看但有效就我而言。

编辑:

您可以使用此 sendkeys 语句:

SendKeys "%{s}", 1

这基本上调用了触发 Outlook 发送按钮的 Alt + S。

于 2012-05-08T08:07:39.793 回答
1

三个选项

- Use a pc without the MS Outlook security patch
- Use the redemption ocx (google it up to download)
- Use SMTP instead of outlook

对于第二个选项here一个例子

Function sendmail2 (sRecipient, sSubject, sMsg, sAttach)
    on error resume next
    dim SafeItem, oItem  
    set SafeItem = CreateObject("Redemption.SafeMailItem") 'Create an instance of Redemption.SafeMailItem 
    set oItem = oApp.CreateItem(0) 'Create a new message
    With SafeItem
      .Item = oItem 'set Item property 
      .Recipients.Add sRecipient
      .Recipients.ResolveAll 
      .Subject = sSubject
      .HTMLBody = sMsg
      .Send 
    End With
  End Function
于 2012-05-08T09:54:14.903 回答
0

另一种可能的解决方法是更新您机器上的注册表设置。

https://support.microsoft.com/en-gb/help/3189806/a-program-is-trying-to-send-an-e-mail-message-on-your-behalf-warning-i

此链接概述了如何识别相关注册表项以及应设置的值。这允许您覆盖信任中心设置。

于 2019-02-16T01:48:06.590 回答
0

我遇到了同样的问题,因为我的应用程序在 Windows 7 上运行,我能够使用 Windows Mail Client (wlmail.exe) 来发送电子邮件,而不是 MS Outlook。使用 Wlmail,警告仍以默认行为出现,但有一个选项可以通过转到选项 > 安全选项卡来关闭警告,一旦您将其关闭,程序就可以发送邮件而不会弹出一个弹出窗口。

于 2015-10-20T21:40:17.120 回答