通过PHPMailer以Exchange用户身份发信是否会存入对应MS Outlook发件箱?
问题解答
- 默认通过
PHPMailer走SMTP协议以Exchange用户身份认证发信时,邮件不会自动出现在该用户的MS Outlook发件箱中
原因很简单:SMTP协议仅负责邮件的提交传输,本身没有自动同步存储已发送邮件到服务端的逻辑。而Outlook的发件箱展示的内容,是直接同步Exchange服务端「已发送邮件」文件夹内的存储数据,因此默认场景下你在Outlook里看不到PHPMailer发出的邮件。
如果需要让这类邮件同步到Outlook发件箱,可以选择两种实现方案:
- 方案1:PHPMailer发信完成后,通过PHP IMAP扩展连接Exchange服务器,将已发送的邮件全文手动写入Exchange的「已发送邮件」系统文件夹,后续Outlook完成服务端同步后就可以在发件箱看到对应记录
- 方案2:放弃仅用PHPMailer发信的逻辑,直接调用Exchange EWS(Exchange Web Services)接口完成发信操作,EWS发信默认会自动将邮件副本存入已发送文件夹,不需要额外做同步操作
补充说明:PHPMailer本身仅封装了SMTP发信的相关能力,没有内置Exchange邮箱文件夹的操作功能,要实现已发送邮件同步的需求,必须额外搭配对应扩展或第三方库开发相关逻辑。
内容的提问来源于stack exchange,提问作者digitalway
相关产品推荐
相关产品推荐

