当前位置: 代码迷 >> VBA >> outlook中使用vbs生成签名后,打开邮件也会显示标签,如何调整为只在新建邮件的时候,显示标签
  详细解决方案

outlook中使用vbs生成签名后,打开邮件也会显示标签,如何调整为只在新建邮件的时候,显示标签

热度:5184   发布时间:2013-02-26 00:00:00.0
outlook中使用vbs生成签名后,打开邮件也会显示标签,怎么调整为只在新建邮件的时候,显示标签
outlook中使用vbs生成签名后,打开已有邮件会只显示签名和新建邮件一样,怎么调整为只在新建邮件的时候,显示签名。

问题主要是outlook的签名没有日期控件等,所以想用vbs实现新建邮件时,自动插入日期,问候语,结束语等功能,代码如下:



Dim myOlApp As New Outlook.Application

'Private WithEvents myOlInspectors As Outlook.Inspectors

Private myMailItem As Outlook.MailItem

Function Signature() As String

Dim mDate As Date

mDate = Format(Now, "yyyy-MM-dd hh:mm:ss")

  Signature = "<font class=MsoNormal align=left style='text-align:left'><span lang=EN-US style='font-family:""""微软雅黑"""",""""sans-serif""""'><o:p>"

  Signature = Signature & "<p>,您好!</p>"
   
  Signature = Signature & "<p> </p>"

  Signature = Signature & "<p>Best Regard</p><p></p>"
   
  Signature = Signature & "<p>" & mDate & "</p>"

  Signature = Signature & "</o:p></span></font>"
   
   
End Function

Private Sub Application_Startup()
  'GetSignature
  Set myOlInspectors = myOlApp.Inspectors
End Sub

Private Sub myOlInspectors_NewInspector(ByVal Inspector As Inspector)

  Set myMailItem = Inspector.CurrentItem

  With myMailItem

  .HTMLBody = Signature()

  ' .Display '如果是outlook 2007 将此行注释掉

  End With

End Sub



现在测试发现如下问题:

1. 打开所有邮件,都显示新建邮件的页面
2. 如何在程序中调用以后的签名
3. 回复和转发功能,怎么使用同类功能,需要把原邮件内容跟在此签名后变。

------解决方案--------------------------------------------------------
Private Sub myOlInspectors_NewInspector(ByVal Inspector As Inspector)
  
Set myMailItem = Inspector.CurrentItem
  
If (myMailItem.To = "") Then

With myMailItem
.HTMLBody = Signature()
' .display End With
End If

End Sub
  相关解决方案