如何在Outlook 365中自动将回复/转发邮件的收发件人转为友好超链接
在Outlook 365中自动将回复/转发的To/Cc收件人转为友好超链接
要实现这个需求,你需要通过VBA宏来修改邮件发送时的正文内容,具体步骤如下:
一、创建VBA宏
- 打开Outlook,按下
Alt + F11打开VBA编辑器 - 在左侧“项目”窗格中展开
Microsoft Outlook Objects,双击ThisOutlookSession - 粘贴以下代码:
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean) Dim objMail As MailItem Dim objRecip As Recipient Dim strToCc As String Dim strLink As String ' 仅处理邮件项 If TypeName(Item) <> "MailItem" Then Exit Sub Set objMail = Item ' 仅处理回复/转发邮件 If objMail.ReplyRecipients.Count = 0 And objMail.ConversationIndex = "" Then Exit Sub strToCc = "" ' 处理回复收件人(原邮件的收件人) For Each objRecip In objMail.ReplyRecipients strToCc = strToCc & "<a href='mailto:" & objRecip.Address & "'>" & objRecip.Name & "</a>, " Next objRecip ' 处理原邮件的Cc收件人 If objMail.CC <> "" Then Dim arrCc As Variant arrCc = Split(objMail.CC, ";") Dim i As Integer For i = LBound(arrCc) To UBound(arrCc) Dim strCcAddr As String, strCcName As String strCcAddr = Trim(arrCc(i)) ' 提取姓名和邮箱地址 If InStr(strCcAddr, "<") > 0 Then strCcName = Trim(Left(strCcAddr, InStr(strCcAddr, "<") - 1)) strCcAddr = Mid(strCcAddr, InStr(strCcAddr, "<") + 1, InStr(strCcAddr, ">") - InStr(strCcAddr, "<") - 1) Else strCcName = strCcAddr End If strToCc = strToCc & "<a href='mailto:" & strCcAddr & "'>" & strCcName & "</a>, " Next i End If ' 移除末尾多余的逗号和空格 If strToCc <> "" Then strToCc = Left(strToCc, Len(strToCc) - 2) ' 替换正文里的To/Cc原始内容 objMail.HTMLBody = Replace(objMail.HTMLBody, "<p><b>To:</b> " & objMail.To & "</p>", "<p><b>To:</b> " & strToCc & "</p>", , , vbTextCompare) objMail.HTMLBody = Replace(objMail.HTMLBody, "<p><b>Cc:</b> " & objMail.CC & "</p>", "<p><b>Cc:</b> " & strToCc & "</p>", , , vbTextCompare) End If Set objRecip = Nothing Set objMail = Nothing End Sub
- 保存宏后关闭VBA编辑器
二、启用宏
- 打开Outlook的「文件」→「选项」
- 进入「信任中心」→「信任中心设置」
- 选择「宏设置」,勾选「启用所有宏」(或选择「通知我有关数字签名宏的宏」并给宏添加数字签名,更安全)
- 点击确定后重启Outlook
三、测试效果
回复或转发任意邮件时,邮件正文开头的To/Cc收件人会自动转为以姓名为显示文本、点击可直接发邮件的友好超链接。
内容的提问来源于stack exchange,提问作者gaduaxe
相关产品推荐
相关产品推荐

