【问题标题】:Automatically save draft email自动保存草稿电子邮件
【发布时间】:2020-06-24 15:59:08
【问题描述】:

我正在寻找 Outlook 2013 的 VBA 代码,该代码将在打开撰写窗口、回复或转发电子邮件时自动保存草稿(如果它也触发新撰写的邮件也可以)或在发送之前自动保存草稿点击发送按钮时。

基本上模拟在撰写之前或发送消息之前点击“保存”图标或 Ctrl-S。

当 Google Apps 帐户与 Outlook 中的其他电子邮件帐户结合使用时,Outlook 会在回复或转发非 Google Apps 帐户电子邮件时生成“无法完成操作,因为邮件提供商不支持它”。

我发现一种解决方法是在发送之前手动保存电子邮件。我可以手动完成,但经常忘记。出现错误信息后无法执行。在抛出“无法完成”错误后尝试保存会导致另一个错误。

顺便说一句,我已经有一个运行 Application_ItemSend 事件的例程;会增加另一个冲突吗?

更新:这是我尝试过的版本:

Private Sub Application_ItemSend(ByVal item As Object, Cancel As Boolean)
' Runs when the item is being sent.
    Call AutoSaveDraft(item)
    Call CheckSubject(item)
End Sub

(CheckSubject 触发)

Private Sub AutoSaveDraft(item As Object)
    item.Save
    SendKeys "+{F12}" ' Save the message. ##
    SendKeys "^S"
    Sleep 1000 ' Pause execution 1 second. The Windows sleep function is      called in the beginning ##
End Sub

(是的,我有所有三种可能的保存方法。也分别尝试过。

【问题讨论】:

    标签: vba outlook


    【解决方案1】:

    如果有助于避免问题,您可以随意调用 ItemSend 事件处理程序中的 Save 方法。

    Getting Started with VBA in Outlook 2010 文章可能对您有所帮助。

    【讨论】:

    • 谢谢。对不起,我这么晚才回来检查答案。我虽然是这样,但我已经尝试了三种不同的方式,但都没有成功。 (这可能意味着我做错了什么)。我尝试在 Private Sub Application_ItemSend(ByVal item As Object, Cancel As Boolean) 中使用 item.save,这是一个使用 Item_Send 调用的 item.save 和 sendkeys 方法的保存子例程,所有这些都没有任何效果(Item_send 调用的另一个例程,以检查对于没有主题行,似乎工作得很好)
    • 我建议改为更新原始帖子。
    【解决方案2】:

    由于原始海报没有明确说明,这实际上是为了防止在简单地点击发送时与非 Google Apps 帐户相关的错误:

    Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
         Item.Save
    End Sub
    

    【讨论】:

      猜你喜欢
      • 2022-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多