如何使用内联附件发送电子邮件

时间:2014-12-09 11:04:42

标签: json email-attachments exchangewebservices office365

我发送了我的团队使用json与Office API 365集成的描述。

我们希望通过JSON API发送包含内联附件的电子邮件。

有了这个目标,我们正在做什么:

  1. 使用回复操作创建空草稿消息;
  2. 发送多个内联附件;
  3. 更新草稿信息正文(内联cid图片);
  4. 发送消息;
  5. API的问题是什么?

    我们无法设置" ContentType"我们将附件提交到Office API 365时的属性。 尽管" ContentType"我们发送,它始终为空。

    我们使用以下API:POST https://outlook.office365.com/api/v1.0/me/messages/ {message_id} / attachments

    这就是我们认为尽管内联图像然后在正文中找到但却无法显示因为内容类型设置不正确的原因。

    请给我们一些指示。

2 个答案:

答案 0 :(得分:2)

ContentType应该不是问题。重要的是您将ContentId属性设置为值,然后在消息正文中的cid链接中使用该值。这对我有用:

POST /Me/folders/drafts/messages

{
  "Subject": "Inline image test",
  "Body": {
    "ContentType": "HTML",
    "Content": "<html><body><strong>There should be an image here:</strong><p><img src=\"cid:my_inline_attachment\"></p></body></html>"
  }
}

注意cid:my_inline_attachment位。

然后做:

POST /Me/messages({message_id})/Attachments

{
  "@odata.type": "#Microsoft.OutlookServices.FileAttachment",
  "Name": "th.jpg",
  "IsInline": true,
  "ContentId": "my_inline_attachment",
  "ContentBytes": {base64-encoded contents of jpeg}
}

注意附件JSON中的"ContentId": "my_inline_attachment"行。希望有所帮助!

答案 1 :(得分:0)

草稿并添加附件不是很有效,并且会带来很多故障。

幸运的是,这可以一劳永逸。

这里是一个带有1张图像的示例。可以将其粘贴在“图形资源管理器”中:https://developer.microsoft.com/graph/graph-explorer/

URL:https://graph.microsoft.com/v1.0/me/sendMail(作为帖子)

将电子邮件从更改为您的电子邮件。注意contentBytes是图像的base64。这是jpeg,但也可以用于png。

请注意cid,它应该是图片的唯一ID。

{
    "message": {
        "subject": "Test graphAPI",
        "toRecipients": [{ "emailAddress": {"address": "youremail@outlook.com"}}],
        "body": {
            "contentType": "html",
            "content": "<div>This is a small jpeg: <img src=\"cid:yourcid\"></div>"
        },
        "attachments": [
        {
  "contentType": "image/jpg",
  "contentId": "yourcid",
  "isInline": true,
  "@odata.type": "#Microsoft.OutlookServices.FileAttachment",
  "contentBytes": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAsICAoIBwsKCQoNDAsNERwSEQ8PESIZGhQcKSQrKigkJyctMkA3LTA9MCcnOEw5PUNFSElIKzZPVU5GVEBHSEX/2wBDAQwNDREPESESEiFFLicuRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUX/wAARCAAgACADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDqtXvX0/TnniVWkLxxru6Au6oCR3A3ZxxnGMjrXPPpVpcN5l5Ct5Mest0BI34Z+6M5O0YAycAU/wAdSyGCyggRzMrSXW4PsVVSMqctvQgZkXkHgZPOMHInF7LpliF+0qzOV2O+2RhngkCRTkIGO3eT2O45dfOxnM5KKlZep00LJNtGbrVufBpt9T0GV7YGURy25Zmjl4YjcCee4/HIwea9G0bVIta0i11CEbVnTcV5+VujLkgZwQRnvivN/FCXL+GoobmGdpjeCOANt3kYO0nBbORnjOeRktjLbHgxjoWutoBmBjltRcsJBjM/AYRnA3LtGe/3e2DW2GqPlUZO71Iqx1ukS+OF1K11KK4tIrJ7a8iS3ZrmYR7HQu4O4soXgkg56r2OM4Savd/LI1kt8IwrxQLq0MrAE8YRBucjAPzBiuM8da1vFnjLTdQ0+90u2jjukdShma4Ea7hgqUxkthh3wDjuDmuWjv8AV082KHUrNluOly1+T5Stg4Cu+RjpkruHNVWpw3a1fnYISkuo/wAQ+M4tW0j7HbWzo0uDMZMYXBBwuOvI6nHHbnjE0/VQniK21PUjLceXOs0hRgGOCCMZ44wOOOBjjqNKXSdJ0+CBGv7e8uZGLSMkg2RqFwV69SzAgnsvbHNFreKxmju9PvoxNbsJEDMpO5eQR68gcYrShTgoXprQJ88tWf/Z",
  "name": "name.jpg"
}
]
    }
}