自动保存草稿电子邮件

时间:2015-05-01 13:09:13

标签: outlook outlook-vba

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

基本上模仿击中" Save"在撰写之前或发送邮件之前的图标或Ctrl-S。

Outlook生成"无法完成操作,因为邮件提供商不支持它"在Google Apps帐户与Outlook中的其他电子邮件帐户合并时,回复或转发非Google Apps帐户电子邮件时出错。

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

BTW,我已经有一个运行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

(是的,我有三种潜在的保存方法。也已经单独尝试过。

2 个答案:

答案 0 :(得分:0)

如果它有助于避免问题,您可以在ItemSend事件处理程序中调用保存方法。

您可能会发现Getting Started with VBA in Outlook 2010文章有用。

答案 1 :(得分:0)

由于原始海报并未明确说明,因此只需按发送即可实际防止与非Google Apps帐户相关的错误:

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