如何用Python通过Outlook发送内部/受限/高度受限邮件
使用win32com.client给Outlook邮件添加权限并解决发送报错问题
你遇到的报错是:
com_error: (-214747260, "操作已中止", None, None)
这大概率是因为你的组织Outlook/Exchange策略要求必须指定邮件权限级别,未设置时会触发发送拦截。要添加internal/restricted/highly restricted权限,需使用Outlook对象的Permission属性,对应权限的枚举值如下:
- Internal:
olPermissionInternal(值为2) - Restricted:
olPermissionRestricted(值为3) - Highly Restricted:
olPermissionHighlyConfidential(值为4)
同时需要指定权限服务为RMS(默认权限服务),设置PermissionService = 1(对应olPermissionServiceRMS)。
修改后的完整代码示例(以添加Restricted权限为例):
import win32com.client as client outlook = client.Dispatch("Outlook.Application") message = outlook.CreateItem(0) message.To = "xxxx@officemail.com" message.Subject = "abcd" message.Body = "abc xyz" # 设置权限为Restricted,可根据需求替换为2或4 message.Permission = 3 # 指定权限服务为RMS message.PermissionService = 1 message.Send()
如果需要其他权限,直接将message.Permission的值替换为对应数字即可:
- 要设为Internal,改
message.Permission = 2 - 要设为Highly Restricted,改
message.Permission = 4
内容的提问来源于stack exchange,提问作者a b
相关产品推荐
相关产品推荐

