我有一个程序可以检测附件的文件大小,如果它大于预定义的大小,则会显示MsgBox
。
我的问题是,是否可以使用自定义内联功能区或横幅,而不是使用MsgBox
?下面是我想要重现的一个例子的图像。具体来说,我想重新创建电子邮件正文上方的粉红色横幅,而不是弹出MsgBox
当且仅当文件大小符合大小标准时,否则它看起来完全正常。
http://gaspull.geeksaresexytech.netdna-cdn.com/wp-content/uploads/2008/03/outlook1.jpg
有人能指出我做更多功课的来源或参考吗?我搜索过谷歌,但我不认为我正在搜索正确的关键字,因为我的搜索不断提出其他内容。
答案 0 :(得分:1)
我建议您修改代码,将一些HTML插入MailItem.HTMLBody
。
根据你的HTML技巧(这不是我的强项......),你可能会非常接近匹配外观&感觉那个通知。
然后,您可以使用ItemSend
事件来确定如何处理电子邮件。
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
Select Case TypeName(Item)
Case "MailItem"
If InStr(1, Item.HTMLBody, GetWarningMessage) Then
'If you want to cancel the send, then do this:
Cancel = True
MsgBox "Attachment is too big to send!"
'Or, if you want to send anyways, do this:
'Item.HTMLBody = Replace(Item.HTMLBody, GetWarningMessage, vbNullString)
End If
Case Else
'Do nothing, or modify as needed
End Select
End Sub
您需要修改此函数以返回表示警告消息的正确子字符串。我使用简单的文字突出显示/等。但我认为你可以使用形状或智能艺术等。
Function GetWarningMessage() As String
Dim str$
str = "<p class=MsoNormal><b><span style='color:red;background:silver;mso-highlight:silver'>Warning:</span></b><span style='color:red;background:silver;mso-highlight:silver'> </span><span style='background:silver;mso-highlight:silver'>This message contains an attachment that is too large to send.</span><o:p></o:p></p>"
GetWarningMessage = str
End Function