使用Azure邮件通信Python SDK如何获取已发邮件的Message ID?
获取Azure邮件通信服务发送邮件的Message-ID
你当前获取到的id是邮件发送操作的ID,并非邮件本身的Message-ID(即邮件头中用于唯一标识邮件的ID,可满足后续追踪、引用等需求)。要获取实际的邮件Message-ID,可通过以下两种方式操作:
方法一:查询发送状态提取Message-ID
发送操作完成后,使用返回的操作ID调用get_send_status方法,从详细状态结果中提取Message-ID:
修改原有代码,在获取result后添加如下逻辑:
result = poller.result() # 用操作ID查询邮件发送的详细状态 send_status = self.email_client.get_send_status(result["id"]) # 提取邮件的Message-ID(若SDK返回字典结构,可改用send_status["messageId"]) message_id = send_status.message_id
此时message_id即为该邮件的唯一标识,可直接用于后续业务场景。
方法二:主动指定自定义Message-ID
若需要自定义邮件的Message-ID,可在发送邮件的payload中添加messageId字段,直接设置你需要的ID值:
{ "content": { "subject": "Sample Subject", "html": "<!DOCTYPE html>\n<html>\n<head>\n\n\n</head>\n<body>\n\n<div style=\"padding-left: 5%; padding-right: 5%\">\n<p>Hello Team,</p></div>\n</body>\n</html>" }, "recipients": { "to": [ { "address": "my_email.com", "displayName": "My Name" } ], "cc": [], "bcc": [] }, "senderAddress": "dillip@something.net", "attachments": [], "messageId": "custom-message-id-20240520" }
发送成功后,这个自定义的Message-ID会被嵌入邮件头,同时也可通过上述get_send_status方法获取验证。
内容的提问来源于stack exchange,提问作者DilLip_Chowdary
相关产品推荐
相关产品推荐

