{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-docs/email-api/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["tabs","tab","admonition"]},"type":"markdown"},"seo":{"title":"Send with Attached Files - Mailjet Send API v3.1","siteUrl":"https://dev.mailjet.com/","projectTitle":"Mailjet Developer Documentation","description":"Attach files to emails with Mailjet Send API v3.1 using Attachments or InlinedAttachments, both needing Base64-encoded content and a MIME type.","image":"https://dev.mailjet.com/og-image.png","lang":"en-US","keywords":["Mailjet API","Email API","Content API","SMTP Relay","transactional email","email delivery","Send API","email templates","developer documentation"],"meta":[{"name":"og:type","content":"website"},{"name":"og:site_name","content":"Mailjet Developer Documentation"},{"name":"twitter:card","content":"summary_large_image"},{"name":"robots","content":"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1"},{"name":"googlebot","content":"index, follow, max-snippet:-1, max-image-preview:large"}],"jsonLd":{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://dev.mailjet.com/#organization","name":"Mailjet","alternateName":"Sinch Mailjet","url":"https://www.mailjet.com","logo":"https://assets.mailjet.com/lib/images/mailjetLogo/mj_logo_with_text_color.png","parentOrganization":{"@type":"Organization","name":"Sinch","url":"https://www.sinch.com"}},{"@type":"WebSite","@id":"https://dev.mailjet.com/#website","name":"Mailjet Developer Documentation","description":"Official developer documentation for the Mailjet Email API, Content API and SMTP Relay.","url":"https://dev.mailjet.com/","inLanguage":"en-US","publisher":{"@id":"https://dev.mailjet.com/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://dev.mailjet.com/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]},"llmstxt":{"hide":false,"title":"Mailjet Developer Documentation","description":"Developer documentation for the Mailjet Email API, Content API and SMTP Relay - guides, API references and code samples for sending, templating and tracking email at scale.","details":{"content":"Mailjet (part of Sinch) provides APIs for sending and managing email.\n\nThis documentation covers four main areas:\n\n- **Email API** - the Send API (v3 and v3.1) for transactional and marketing email,\n  plus contact management, segmentation, campaigns, statistics, webhooks, the Parse API\n  and the Mailjet Templating Language.\n- **Content API** - programmatic management of email templates, template contents,\n  images, labels and authentication tokens (v1).\n- **SMTP Relay** - sending through Mailjet's SMTP servers, including custom headers.\n- **API Reference** - the complete, generated reference for every endpoint, built directly\n  from the OpenAPI specifications.\n\nBase URL for all REST APIs: `https://api.mailjet.com`.\nAuthentication uses HTTP Basic auth with an API key and secret key.\n\n## Machine-readable entry points\n\nPrefer these when you need the API surface in as few requests as possible:\n\n- `/openapi/openapi-mailjet.md` - the **complete** Email API reference (every endpoint,\n  grouped by resource) as a single Markdown document.\n- `/openapi/openapi-passport.md` - the **complete** Content API reference as a single\n  Markdown document.\n- `/_bundle/openapi/openapi-mailjet.yaml` - the raw, fully bundled OpenAPI 3 description\n  of the Email API.\n- `/_bundle/openapi/openapi-passport.yaml` - the raw, fully bundled OpenAPI 3 description\n  of the Content API.\n- `/sitemap.xml` - every indexable URL on this site.\n\nEvery page on this site is also available as clean Markdown by appending `.md` to its URL."},"sections":[{"title":"Email API","description":"Sending, contacts, campaigns, statistics, webhooks and templating.","includeFiles":["docs/email-api/**/*.md"],"excludeFiles":[]},{"title":"Content API","description":"Manage templates, template contents, images, labels and tokens.","includeFiles":["docs/content-api/**/*.md","docs/content-api.md"],"excludeFiles":[]},{"title":"SMTP Relay","description":"Send email through Mailjet's SMTP servers.","includeFiles":["docs/smtp-relay/**/*.md"],"excludeFiles":[]},{"title":"API Reference","description":"Complete generated reference for every Mailjet API endpoint.","includeFiles":["openapi/openapi-mailjet.yaml","openapi/openapi-passport.yaml","docs/api-reference/**/*.md"],"excludeFiles":[]},{"title":"Migrating from Mandrill","description":"Guides for switching from Mandrill to Mailjet.","includeFiles":["docs/mandrill/**/*.md"],"excludeFiles":[]}],"excludeFiles":[]},"priority":0.8},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"send-with-attached-files","__idx":0},"children":["Send with attached files"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To attach files, use the properties ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Attachments"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["InlinedAttachments"]},"."," ","When using ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Attachments"]},", the attachment will be separately added as a file and the recipient should click on it in order to see it. Normally, the inlined attachment(s) should be visible directly in the body of the message, but this depends on the recipient's email client behavior. In both calls, the content needs to be Base64 encoded. You also need to specify the MIME type and a file name."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"example","__idx":1},"children":["Example"]},{"$$mdtype":"Tag","name":"Tabs","attributes":{"size":"medium"},"children":[{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"cURL","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"shell","header":{"controls":{"copy":{}}},"source":"# This call sends a message to the given recipient with attachment.\ncurl -s \\\n\t-X POST \\\n\t--user \"$MJ_APIKEY_PUBLIC:$MJ_APIKEY_PRIVATE\" \\\n\thttps://api.mailjet.com/v3.1/send \\\n\t-H 'Content-Type: application/json' \\\n\t-d '{\n\t\t\"Messages\":[\n\t\t\t\t{\n\t\t\t\t\t\t\"From\": {\n\t\t\t\t\t\t\t\t\"Email\": \"pilot@mailjet.com\",\n\t\t\t\t\t\t\t\t\"Name\": \"Mailjet Pilot\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"To\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\"Email\": \"passenger1@mailjet.com\",\n\t\t\t\t\t\t\t\t\t\t\"Name\": \"passenger 1\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t],\n\t\t\t\t\t\t\"Subject\": \"Your email flight plan!\",\n\t\t\t\t\t\t\"TextPart\": \"Dear passenger 1, welcome to Mailjet! May the delivery force be with you!\",\n\t\t\t\t\t\t\"HTMLPart\": \"<h3>Dear passenger 1, welcome to <a href=\\\"https://www.mailjet.com/\\\">Mailjet</a>!</h3><br />May the delivery force be with you!\",\n\t\t\t\t\t\t\"Attachments\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\"ContentType\": \"text/plain\",\n\t\t\t\t\t\t\t\t\t\t\"Filename\": \"test.txt\",\n\t\t\t\t\t\t\t\t\t\t\"Base64Content\": \"VGhpcyBpcyB5b3VyIGF0dGFjaGVkIGZpbGUhISEK\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t]\n\t\t\t\t}\n\t\t]\n\t}'\n","lang":"shell"},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"PHP","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"php","header":{"controls":{"copy":{}}},"source":"<?php\n/*\nThis call sends a message to the given recipient with attachment.\n*/\nrequire 'vendor/autoload.php';\nuse \\Mailjet\\Resources;\n$mj = new \\Mailjet\\Client(getenv('MJ_APIKEY_PUBLIC'), getenv('MJ_APIKEY_PRIVATE'),true,['version' => 'v3.1']);\n$body = [\n    'Messages' => [\n        [\n            'From' => [\n                'Email' => \"pilot@mailjet.com\",\n                'Name' => \"Mailjet Pilot\"\n            ],\n            'To' => [\n                [\n                    'Email' => \"passenger1@mailjet.com\",\n                    'Name' => \"passenger 1\"\n                ]\n            ],\n            'Subject' => \"Your email flight plan!\",\n            'TextPart' => \"Dear passenger 1, welcome to Mailjet! May the delivery force be with you!\",\n            'HTMLPart' => \"<h3>Dear passenger 1, welcome to <a href=\\\"https://www.mailjet.com/\\\">Mailjet</a>!</h3><br />May the delivery force be with you!\",\n            'Attachments' => [\n                [\n                    'ContentType' => \"text/plain\",\n                    'Filename' => \"test.txt\",\n                    'Base64Content' => \"VGhpcyBpcyB5b3VyIGF0dGFjaGVkIGZpbGUhISEK\"\n                ]\n            ]\n        ]\n    ]\n];\n$response = $mj->post(Resources::$Email, ['body' => $body]);\n$response->success() && var_dump($response->getData());\n?>\n","lang":"php"},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Node.js","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"javascript","header":{"controls":{"copy":{}}},"source":"/**\n *\n * This call sends a message to the given recipient with attachment.\n *\n */\nconst mailjet = require ('node-mailjet')\n\t.connect(process.env.MJ_APIKEY_PUBLIC, process.env.MJ_APIKEY_PRIVATE)\nconst request = mailjet\n\t.post(\"send\", {'version': 'v3.1'})\n\t.request({\n\t\t\"Messages\":[\n\t\t\t\t{\n\t\t\t\t\t\t\"From\": {\n\t\t\t\t\t\t\t\t\"Email\": \"pilot@mailjet.com\",\n\t\t\t\t\t\t\t\t\"Name\": \"Mailjet Pilot\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"To\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\"Email\": \"passenger1@mailjet.com\",\n\t\t\t\t\t\t\t\t\t\t\"Name\": \"passenger 1\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t],\n\t\t\t\t\t\t\"Subject\": \"Your email flight plan!\",\n\t\t\t\t\t\t\"TextPart\": \"Dear passenger 1, welcome to Mailjet! May the delivery force be with you!\",\n\t\t\t\t\t\t\"HTMLPart\": \"<h3>Dear passenger 1, welcome to <a href=\\\"https://www.mailjet.com/\\\">Mailjet</a>!</h3><br />May the delivery force be with you!\",\n\t\t\t\t\t\t\"Attachments\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\"ContentType\": \"text/plain\",\n\t\t\t\t\t\t\t\t\t\t\"Filename\": \"test.txt\",\n\t\t\t\t\t\t\t\t\t\t\"Base64Content\": \"VGhpcyBpcyB5b3VyIGF0dGFjaGVkIGZpbGUhISEK\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t]\n\t\t\t\t}\n\t\t]\n\t})\nrequest\n\t.then((result) => {\n\t\tconsole.log(result.body)\n\t})\n\t.catch((err) => {\n\t\tconsole.log(err.statusCode)\n\t})\n","lang":"javascript"},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Ruby","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"ruby","header":{"controls":{"copy":{}}},"source":"# This call sends a message to the given recipient with attachment.\nrequire 'mailjet'\nMailjet.configure do |config|\n  config.api_key = ENV['MJ_APIKEY_PUBLIC']\n  config.secret_key = ENV['MJ_APIKEY_PRIVATE']  \n  config.api_version = \"v3.1\"\nend\nvariable = Mailjet::Send.create(messages: [{\n    'From'=> {\n        'Email'=> 'pilot@mailjet.com',\n        'Name'=> 'Mailjet Pilot'\n    },\n    'To'=> [\n        {\n            'Email'=> 'passenger1@mailjet.com',\n            'Name'=> 'passenger 1'\n        }\n    ],\n    'Subject'=> 'Your email flight plan!',\n    'TextPart'=> 'Dear passenger 1, welcome to Mailjet! May the delivery force be with you!',\n    'HTMLPart'=> '<h3>Dear passenger 1, welcome to <a href=\\'https://www.mailjet.com/\\'>Mailjet</a>!</h3><br />May the delivery force be with you!',\n    'Attachments'=> [\n        {\n            'ContentType'=> 'text/plain',\n            'Filename'=> 'test.txt',\n            'Base64Content'=> 'VGhpcyBpcyB5b3VyIGF0dGFjaGVkIGZpbGUhISEK'\n        }\n    ]\n}]\n)\np variable.attributes['Messages']\n","lang":"ruby"},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Python","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"python","header":{"controls":{"copy":{}}},"source":"\"\"\"\nThis call sends a message to the given recipient with attachment.\n\"\"\"\nfrom mailjet_rest import Client\nimport os\napi_key = os.environ['MJ_APIKEY_PUBLIC']\napi_secret = os.environ['MJ_APIKEY_PRIVATE']\nmailjet = Client(auth=(api_key, api_secret), version='v3.1')\ndata = {\n  'Messages': [\n\t\t\t\t{\n\t\t\t\t\t\t\"From\": {\n\t\t\t\t\t\t\t\t\"Email\": \"pilot@mailjet.com\",\n\t\t\t\t\t\t\t\t\"Name\": \"Mailjet Pilot\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"To\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\"Email\": \"passenger1@mailjet.com\",\n\t\t\t\t\t\t\t\t\t\t\"Name\": \"passenger 1\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t],\n\t\t\t\t\t\t\"Subject\": \"Your email flight plan!\",\n\t\t\t\t\t\t\"TextPart\": \"Dear passenger 1, welcome to Mailjet! May the delivery force be with you!\",\n\t\t\t\t\t\t\"HTMLPart\": \"<h3>Dear passenger 1, welcome to <a href=\\\"https://www.mailjet.com/\\\">Mailjet</a>!</h3><br />May the delivery force be with you!\",\n\t\t\t\t\t\t\"Attachments\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\"ContentType\": \"text/plain\",\n\t\t\t\t\t\t\t\t\t\t\"Filename\": \"test.txt\",\n\t\t\t\t\t\t\t\t\t\t\"Base64Content\": \"VGhpcyBpcyB5b3VyIGF0dGFjaGVkIGZpbGUhISEK\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t]\n\t\t\t\t}\n\t\t]\n}\nresult = mailjet.send.create(data=data)\nprint result.status_code\nprint result.json()\n","lang":"python"},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Java","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"java","header":{"controls":{"copy":{}}},"source":"package com.my.project;\nimport com.mailjet.client.errors.MailjetException;\nimport com.mailjet.client.errors.MailjetSocketTimeoutException;\nimport com.mailjet.client.MailjetClient;\nimport com.mailjet.client.MailjetRequest;\nimport com.mailjet.client.MailjetResponse;\nimport com.mailjet.client.ClientOptions;\nimport com.mailjet.client.resource.Emailv31;\nimport org.json.JSONArray;\nimport org.json.JSONObject;\npublic class MyClass {\n    /**\n     * This call sends a message to the given recipient with attachment.\n     */\n    public static void main(String[] args) throws MailjetException, MailjetSocketTimeoutException {\n      MailjetClient client;\n      MailjetRequest request;\n      MailjetResponse response;\n      client = new MailjetClient(System.getenv(\"MJ_APIKEY_PUBLIC\"), System.getenv(\"MJ_APIKEY_PRIVATE\"), new ClientOptions(\"v3.1\"));\n      request = new MailjetRequest(Emailv31.resource)\n\t\t\t.property(Emailv31.MESSAGES, new JSONArray()\n                .put(new JSONObject()\n                    .put(Emailv31.Message.FROM, new JSONObject()\n                        .put(\"Email\", \"pilot@mailjet.com\")\n                        .put(\"Name\", \"Mailjet Pilot\"))\n                    .put(Emailv31.Message.TO, new JSONArray()\n                        .put(new JSONObject()\n                            .put(\"Email\", \"passenger1@mailjet.com\")\n                            .put(\"Name\", \"passenger 1\")))\n                    .put(Emailv31.Message.SUBJECT, \"Your email flight plan!\")\n                    .put(Emailv31.Message.TEXTPART, \"Dear passenger 1, welcome to Mailjet! May the delivery force be with you!\")\n                    .put(Emailv31.Message.HTMLPART, \"<h3>Dear passenger 1, welcome to <a href=\\\"https://www.mailjet.com/\\\">Mailjet</a>!</h3><br />May the delivery force be with you!\")\n                    .put(Emailv31.Message.ATTACHMENTS, new JSONArray()\n                        .put(new JSONObject()\n                            .put(\"ContentType\", \"text/plain\")\n                            .put(\"Filename\", \"test.txt\")\n                            .put(\"Base64Content\", \"VGhpcyBpcyB5b3VyIGF0dGFjaGVkIGZpbGUhISEK\")))));\n      response = client.post(request);\n      System.out.println(response.getStatus());\n      System.out.println(response.getData());\n    }\n}\n","lang":"java"},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Go","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"go","header":{"controls":{"copy":{}}},"source":"/*\nThis call sends a message to the given recipient with attachment.\n*/\npackage main\nimport (\n\t\"fmt\"\n\t\"log\"\n\t\"os\"\n\tmailjet \"github.com/mailjet/mailjet-apiv3-go\"\n)\nfunc main () {\n\tmailjetClient := NewMailjetClient(os.Getenv(\"MJ_APIKEY_PUBLIC\"), os.Getenv(\"MJ_APIKEY_PRIVATE\"))\n\tmessagesInfo := []mailjet.InfoMessagesV31 {\n      mailjet.InfoMessagesV31{\n        From: &mailjet.RecipientV31{\n          Email: \"pilot@mailjet.com\",\n          Name: \"Mailjet Pilot\",\n        },\n        To: &mailjet.RecipientsV31{\n          mailjet.RecipientV31 {\n            Email: \"passenger1@mailjet.com\",\n            Name: \"passenger 1\",\n          },\n        },\n        Subject: \"Your email flight plan!\",\n        TextPart: \"Dear passenger 1, welcome to Mailjet! May the delivery force be with you!\",\n        HTMLPart: \"<h3>Dear passenger 1, welcome to <a href=\\\"https://www.mailjet.com/\\\">Mailjet</a>!</h3><br />May the delivery force be with you!\",\n        Attachments: &mailjet.AttachmentsV31{\n          mailjet.AttachmentV31 {\n            ContentType: \"text/plain\",\n            Filename: \"test.txt\",\n            Base64Content: \"VGhpcyBpcyB5b3VyIGF0dGFjaGVkIGZpbGUhISEK\",\n          },\n        },\n      },\n    }\n\tmessages := mailjet.MessagesV31{Info: messagesInfo }\n\tres, err := m.SendMailV31(&messages)\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\tfmt.Printf(\"Data: %+v\\n\", res)\n}\n","lang":"go"},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"C#","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"csharp","header":{"controls":{"copy":{}}},"source":"using Mailjet.Client;\nusing Mailjet.Client.Resources;\nusing System;\nusing Newtonsoft.Json.Linq;\nnamespace Mailjet.ConsoleApplication\n{\n   class Program\n   {\n      /// <summary>\n      /// This call sends a message to the given recipient with attachment.\n      /// </summary>\n      static void Main(string[] args)\n      {\n         RunAsync().Wait();\n      }\n      static async Task RunAsync()\n      {\n         MailjetClient client = new MailjetClient(Environment.GetEnvironmentVariable(\"MJ_APIKEY_PUBLIC\"), Environment.GetEnvironmentVariable(\"MJ_APIKEY_PRIVATE\"))\n         {\n            Version = ApiVersion.V3_1,\n         };\n         MailjetRequest request = new MailjetRequest\n         {\n            Resource = Send.Resource,\n         }\n            .Property(Send.Messages, new JArray {\n                new JObject {\n                 {\"From\", new JObject {\n                  {\"Email\", \"pilot@mailjet.com\"},\n                  {\"Name\", \"Mailjet Pilot\"}\n                  }},\n                 {\"To\", new JArray {\n                  new JObject {\n                   {\"Email\", \"passenger1@mailjet.com\"},\n                   {\"Name\", \"passenger 1\"}\n                   }\n                  }},\n                 {\"Subject\", \"Your email flight plan!\"},\n                 {\"TextPart\", \"Dear passenger 1, welcome to Mailjet! May the delivery force be with you!\"},\n                 {\"HTMLPart\", \"<h3>Dear passenger 1, welcome to <a href=\\\"https://www.mailjet.com/\\\">Mailjet</a>!</h3><br />May the delivery force be with you!\"},\n                 {\"Attachments\", new JArray {\n                  new JObject {\n                   {\"ContentType\", \"text/plain\"},\n                   {\"Filename\", \"test.txt\"},\n                   {\"Base64Content\", \"VGhpcyBpcyB5b3VyIGF0dGFjaGVkIGZpbGUhISEK\"}\n                   }\n                  }}\n                 }\n                });\n         MailjetResponse response = await client.PostAsync(request);\n         if (response.IsSuccessStatusCode)\n         {\n            Console.WriteLine(string.Format(\"Total: {0}, Count: {1}\\n\", response.GetTotal(), response.GetCount()));\n            Console.WriteLine(response.GetData());\n         }\n         else\n         {\n            Console.WriteLine(string.Format(\"StatusCode: {0}\\n\", response.StatusCode));\n            Console.WriteLine(string.Format(\"ErrorInfo: {0}\\n\", response.GetErrorInfo()));\n            Console.WriteLine(response.GetData());\n            Console.WriteLine(string.Format(\"ErrorMessage: {0}\\n\", response.GetErrorMessage()));\n         }\n      }\n   }\n}\n","lang":"csharp"},"children":[]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When using an inlined attachment, it's possible to insert the file inside the HTML code of the email by using ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cid:FILENAME"]},".EXT, where FILENAME.EXT is the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Filename"]}," specified in the declaration of the attachment. Optionally, you can set ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ContentID"]},". It's converted to a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Content-ID"]}," SMTP header. The value set must be unique - Mailjet isn't enforcing it - among all the inline attachments and can be used to reference the inlined attachment in the message body, using the following syntax in HTML (since plain text messages can not contain images): ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["&lt;img src=\"cid:myimagecid\"/&gt;"]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"Info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Remember to keep the size of your attachments small. They should not exceed 15 MB."]}]},{"$$mdtype":"Tag","name":"Tabs","attributes":{"size":"medium"},"children":[{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"cURL","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"shell","header":{"controls":{"copy":{}}},"source":"# This call sends a message to the given recipient with inline attachment.\ncurl -s \\\n\t-X POST \\\n\t--user \"$MJ_APIKEY_PUBLIC:$MJ_APIKEY_PRIVATE\" \\\n\thttps://api.mailjet.com/v3.1/send \\\n\t-H 'Content-Type: application/json' \\\n\t-d '{\n\t\t\"Messages\":[\n\t\t\t\t{\n\t\t\t\t\t\t\"From\": {\n\t\t\t\t\t\t\t\t\"Email\": \"pilot@mailjet.com\",\n\t\t\t\t\t\t\t\t\"Name\": \"Mailjet Pilot\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"To\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\"Email\": \"passenger1@mailjet.com\",\n\t\t\t\t\t\t\t\t\t\t\"Name\": \"passenger 1\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t],\n\t\t\t\t\t\t\"Subject\": \"Your email flight plan!\",\n\t\t\t\t\t\t\"TextPart\": \"Dear passenger 1, welcome to Mailjet! May the delivery force be with you!\",\n\t\t\t\t\t\t\"HTMLPart\": \"<h3>Dear passenger 1, welcome to <img src=\\\"cid:id1\\\"> <a href=\\\"https://www.mailjet.com/\\\">Mailjet</a>!</h3><br />May the delivery force be with you!\",\n\t\t\t\t\t\t\"InlinedAttachments\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\"ContentType\": \"image/png\",\n\t\t\t\t\t\t\t\t\t\t\"Filename\": \"logo.png\",\n\t\t\t\t\t\t\t\t\t\t\"ContentID\": \"id1\",\n\t\t\t\t\t\t\t\t\t\t\"Base64Content\": \"iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAYAAAB/Ca1DAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAB3RJTUUH4wIIChcxurq5eQAAAAd0RVh0QXV0aG9yAKmuzEgAAAAMdEVYdERlc2NyaXB0aW9uABMJISMAAAAKdEVYdENvcHlyaWdodACsD8w6AAAADnRFWHRDcmVhdGlvbiB0aW1lADX3DwkAAAAJdEVYdFNvZnR3YXJlAF1w/zoAAAALdEVYdERpc2NsYWltZXIAt8C0jwAAAAh0RVh0V2FybmluZwDAG+aHAAAAB3RFWHRTb3VyY2UA9f+D6wAAAAh0RVh0Q29tbWVudAD2zJa/AAAABnRFWHRUaXRsZQCo7tInAAABV0lEQVQokaXSPWtTYRTA8d9N7k1zm6a+RG2x+FItgpu66uDQxbFurrr5OQQHR9FZnARB3PwSFqooddAStCBoqmLtS9omx+ESUXuDon94tnP+5+1JYm057GyQjZFP+l+S6G2FzlNe3WHtHc2TNI8zOlUUGLxsD1kDyR+EEQE2P/L8Jm/uk6RUc6oZaYM0JxtnpEX9AGPTtM6w7yzVEb61EaSNn4QD3j5m4QabH6hkVFLSUeqHyCeot0ib6BdNVGscPM/hWWr7S4Tw9TUvbpFUitHTnF6XrS+sL7O6VBSausT0FZonSkb+nZUFFm+z8Z5up5Btr1Lby7E5Zq4yPrMrLR263ZV52g+LvfW3iy6PXubUNVrnhqYNF3bmiZ1i1MmLnL7OxIWh4T+IMpYeRNyrRzyZjWg/ioh+aVgZu4WfXxaixbsRve5fiwb8epTo8+kZjSPFf/sHvgNC0/mbjJbxPAAAAABJRU5ErkJggg==\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t]\n\t\t\t\t}\n\t\t]\n\t}'\n","lang":"shell"},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"PHP","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"php","header":{"controls":{"copy":{}}},"source":"<?php\n/*\nThis call sends a message to the given recipient with inline attachment.\n*/\nrequire 'vendor/autoload.php';\nuse \\Mailjet\\Resources;\n$mj = new \\Mailjet\\Client(getenv('MJ_APIKEY_PUBLIC'), getenv('MJ_APIKEY_PRIVATE'),true,['version' => 'v3.1']);\n$body = [\n    'Messages' => [\n        [\n            'From' => [\n                'Email' => \"pilot@mailjet.com\",\n                'Name' => \"Mailjet Pilot\"\n            ],\n            'To' => [\n                [\n                    'Email' => \"passenger1@mailjet.com\",\n                    'Name' => \"passenger 1\"\n                ]\n            ],\n            'Subject' => \"Your email flight plan!\",\n            'TextPart' => \"Dear passenger 1, welcome to Mailjet! May the delivery force be with you!\",\n            'HTMLPart' => \"<h3>Dear passenger 1, welcome to <img src=\\\"cid:id1\\\"> <a href=\\\"https://www.mailjet.com/\\\">Mailjet</a>!</h3><br />May the delivery force be with you!\",\n            'InlinedAttachments' => [\n                [\n                    'ContentType' => \"image/png\",\n                    'Filename' => \"logo.png\",\n                    'ContentID' => \"id1\",\n                    'Base64Content' => \"iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAYAAAB/Ca1DAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAB3RJTUUH4wIIChcxurq5eQAAAAd0RVh0QXV0aG9yAKmuzEgAAAAMdEVYdERlc2NyaXB0aW9uABMJISMAAAAKdEVYdENvcHlyaWdodACsD8w6AAAADnRFWHRDcmVhdGlvbiB0aW1lADX3DwkAAAAJdEVYdFNvZnR3YXJlAF1w/zoAAAALdEVYdERpc2NsYWltZXIAt8C0jwAAAAh0RVh0V2FybmluZwDAG+aHAAAAB3RFWHRTb3VyY2UA9f+D6wAAAAh0RVh0Q29tbWVudAD2zJa/AAAABnRFWHRUaXRsZQCo7tInAAABV0lEQVQokaXSPWtTYRTA8d9N7k1zm6a+RG2x+FItgpu66uDQxbFurrr5OQQHR9FZnARB3PwSFqooddAStCBoqmLtS9omx+ESUXuDon94tnP+5+1JYm057GyQjZFP+l+S6G2FzlNe3WHtHc2TNI8zOlUUGLxsD1kDyR+EEQE2P/L8Jm/uk6RUc6oZaYM0JxtnpEX9AGPTtM6w7yzVEb61EaSNn4QD3j5m4QabH6hkVFLSUeqHyCeot0ib6BdNVGscPM/hWWr7S4Tw9TUvbpFUitHTnF6XrS+sL7O6VBSausT0FZonSkb+nZUFFm+z8Z5up5Btr1Lby7E5Zq4yPrMrLR263ZV52g+LvfW3iy6PXubUNVrnhqYNF3bmiZ1i1MmLnL7OxIWh4T+IMpYeRNyrRzyZjWg/ioh+aVgZu4WfXxaixbsRve5fiwb8epTo8+kZjSPFf/sHvgNC0/mbjJbxPAAAAABJRU5ErkJggg==\"\n                ]\n            ]\n        ]\n    ]\n];\n$response = $mj->post(Resources::$Email, ['body' => $body]);\n$response->success() && var_dump($response->getData());\n?>\n","lang":"php"},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Node.js","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"javascript","header":{"controls":{"copy":{}}},"source":"/**\n *\n * This call sends a message to the given recipient with inline attachment.\n *\n */\nconst mailjet = require ('node-mailjet')\n\t.connect(process.env.MJ_APIKEY_PUBLIC, process.env.MJ_APIKEY_PRIVATE)\nconst request = mailjet\n\t.post(\"send\", {'version': 'v3.1'})\n\t.request({\n\t\t\"Messages\":[\n\t\t\t\t{\n\t\t\t\t\t\t\"From\": {\n\t\t\t\t\t\t\t\t\"Email\": \"pilot@mailjet.com\",\n\t\t\t\t\t\t\t\t\"Name\": \"Mailjet Pilot\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"To\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\"Email\": \"passenger1@mailjet.com\",\n\t\t\t\t\t\t\t\t\t\t\"Name\": \"passenger 1\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t],\n\t\t\t\t\t\t\"Subject\": \"Your email flight plan!\",\n\t\t\t\t\t\t\"TextPart\": \"Dear passenger 1, welcome to Mailjet! May the delivery force be with you!\",\n\t\t\t\t\t\t\"HTMLPart\": \"<h3>Dear passenger 1, welcome to <img src=\\\"cid:id1\\\"> <a href=\\\"https://www.mailjet.com/\\\">Mailjet</a>!</h3><br />May the delivery force be with you!\",\n\t\t\t\t\t\t\"InlinedAttachments\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\"ContentType\": \"image/png\",\n\t\t\t\t\t\t\t\t\t\t\"Filename\": \"logo.png\",\n\t\t\t\t\t\t\t\t\t\t\"ContentID\": \"id1\",\n\t\t\t\t\t\t\t\t\t\t\"Base64Content\": \"iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAYAAAB/Ca1DAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAB3RJTUUH4wIIChcxurq5eQAAAAd0RVh0QXV0aG9yAKmuzEgAAAAMdEVYdERlc2NyaXB0aW9uABMJISMAAAAKdEVYdENvcHlyaWdodACsD8w6AAAADnRFWHRDcmVhdGlvbiB0aW1lADX3DwkAAAAJdEVYdFNvZnR3YXJlAF1w/zoAAAALdEVYdERpc2NsYWltZXIAt8C0jwAAAAh0RVh0V2FybmluZwDAG+aHAAAAB3RFWHRTb3VyY2UA9f+D6wAAAAh0RVh0Q29tbWVudAD2zJa/AAAABnRFWHRUaXRsZQCo7tInAAABV0lEQVQokaXSPWtTYRTA8d9N7k1zm6a+RG2x+FItgpu66uDQxbFurrr5OQQHR9FZnARB3PwSFqooddAStCBoqmLtS9omx+ESUXuDon94tnP+5+1JYm057GyQjZFP+l+S6G2FzlNe3WHtHc2TNI8zOlUUGLxsD1kDyR+EEQE2P/L8Jm/uk6RUc6oZaYM0JxtnpEX9AGPTtM6w7yzVEb61EaSNn4QD3j5m4QabH6hkVFLSUeqHyCeot0ib6BdNVGscPM/hWWr7S4Tw9TUvbpFUitHTnF6XrS+sL7O6VBSausT0FZonSkb+nZUFFm+z8Z5up5Btr1Lby7E5Zq4yPrMrLR263ZV52g+LvfW3iy6PXubUNVrnhqYNF3bmiZ1i1MmLnL7OxIWh4T+IMpYeRNyrRzyZjWg/ioh+aVgZu4WfXxaixbsRve5fiwb8epTo8+kZjSPFf/sHvgNC0/mbjJbxPAAAAABJRU5ErkJggg==\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t]\n\t\t\t\t}\n\t\t]\n\t})\nrequest\n\t.then((result) => {\n\t\tconsole.log(result.body)\n\t})\n\t.catch((err) => {\n\t\tconsole.log(err.statusCode)\n\t})\n","lang":"javascript"},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Ruby","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"ruby","header":{"controls":{"copy":{}}},"source":"# This call sends a message to the given recipient with inline attachment.\nrequire 'mailjet'\nMailjet.configure do |config|\n  config.api_key = ENV['MJ_APIKEY_PUBLIC']\n  config.secret_key = ENV['MJ_APIKEY_PRIVATE']  \n  config.api_version = \"v3.1\"\nend\nvariable = Mailjet::Send.create(messages: [{\n    'From'=> {\n        'Email'=> 'pilot@mailjet.com',\n        'Name'=> 'Mailjet Pilot'\n    },\n    'To'=> [\n        {\n            'Email'=> 'passenger1@mailjet.com',\n            'Name'=> 'passenger 1'\n        }\n    ],\n    'Subject'=> 'Your email flight plan!',\n    'TextPart'=> 'Dear passenger 1, welcome to Mailjet! May the delivery force be with you!',\n    'HTMLPart'=> '<h3>Dear passenger 1, welcome to <img src=\\'cid:id1\\'> <a href=\\'https://www.mailjet.com/\\'>Mailjet</a>!</h3><br />May the delivery force be with you!',\n    'InlinedAttachments'=> [\n        {\n            'ContentType'=> 'image/png',\n            'Filename'=> 'logo.png',\n            'ContentID'=> 'id1',\n            'Base64Content'=> 'iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAYAAAB/Ca1DAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAB3RJTUUH4wIIChcxurq5eQAAAAd0RVh0QXV0aG9yAKmuzEgAAAAMdEVYdERlc2NyaXB0aW9uABMJISMAAAAKdEVYdENvcHlyaWdodACsD8w6AAAADnRFWHRDcmVhdGlvbiB0aW1lADX3DwkAAAAJdEVYdFNvZnR3YXJlAF1w/zoAAAALdEVYdERpc2NsYWltZXIAt8C0jwAAAAh0RVh0V2FybmluZwDAG+aHAAAAB3RFWHRTb3VyY2UA9f+D6wAAAAh0RVh0Q29tbWVudAD2zJa/AAAABnRFWHRUaXRsZQCo7tInAAABV0lEQVQokaXSPWtTYRTA8d9N7k1zm6a+RG2x+FItgpu66uDQxbFurrr5OQQHR9FZnARB3PwSFqooddAStCBoqmLtS9omx+ESUXuDon94tnP+5+1JYm057GyQjZFP+l+S6G2FzlNe3WHtHc2TNI8zOlUUGLxsD1kDyR+EEQE2P/L8Jm/uk6RUc6oZaYM0JxtnpEX9AGPTtM6w7yzVEb61EaSNn4QD3j5m4QabH6hkVFLSUeqHyCeot0ib6BdNVGscPM/hWWr7S4Tw9TUvbpFUitHTnF6XrS+sL7O6VBSausT0FZonSkb+nZUFFm+z8Z5up5Btr1Lby7E5Zq4yPrMrLR263ZV52g+LvfW3iy6PXubUNVrnhqYNF3bmiZ1i1MmLnL7OxIWh4T+IMpYeRNyrRzyZjWg/ioh+aVgZu4WfXxaixbsRve5fiwb8epTo8+kZjSPFf/sHvgNC0/mbjJbxPAAAAABJRU5ErkJggg=='\n        }\n    ]\n}]\n)\np variable.attributes['Messages']\n","lang":"ruby"},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Python","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"python","header":{"controls":{"copy":{}}},"source":"\"\"\"\nThis call sends a message to the given recipient with inline attachment.\n\"\"\"\nfrom mailjet_rest import Client\nimport os\napi_key = os.environ['MJ_APIKEY_PUBLIC']\napi_secret = os.environ['MJ_APIKEY_PRIVATE']\nmailjet = Client(auth=(api_key, api_secret), version='v3.1')\ndata = {\n  'Messages': [\n\t\t\t\t{\n\t\t\t\t\t\t\"From\": {\n\t\t\t\t\t\t\t\t\"Email\": \"pilot@mailjet.com\",\n\t\t\t\t\t\t\t\t\"Name\": \"Mailjet Pilot\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"To\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\"Email\": \"passenger1@mailjet.com\",\n\t\t\t\t\t\t\t\t\t\t\"Name\": \"passenger 1\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t],\n\t\t\t\t\t\t\"Subject\": \"Your email flight plan!\",\n\t\t\t\t\t\t\"TextPart\": \"Dear passenger 1, welcome to Mailjet! May the delivery force be with you!\",\n\t\t\t\t\t\t\"HTMLPart\": \"<h3>Dear passenger 1, welcome to <img src=\\\"cid:id1\\\"> <a href=\\\"https://www.mailjet.com/\\\">Mailjet</a>!</h3><br />May the delivery force be with you!\",\n\t\t\t\t\t\t\"InlinedAttachments\": [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\"ContentType\": \"image/png\",\n\t\t\t\t\t\t\t\t\t\t\"Filename\": \"logo.png\",\n\t\t\t\t\t\t\t\t\t\t\"ContentID\": \"id1\",\n\t\t\t\t\t\t\t\t\t\t\"Base64Content\": \"iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAYAAAB/Ca1DAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAB3RJTUUH4wIIChcxurq5eQAAAAd0RVh0QXV0aG9yAKmuzEgAAAAMdEVYdERlc2NyaXB0aW9uABMJISMAAAAKdEVYdENvcHlyaWdodACsD8w6AAAADnRFWHRDcmVhdGlvbiB0aW1lADX3DwkAAAAJdEVYdFNvZnR3YXJlAF1w/zoAAAALdEVYdERpc2NsYWltZXIAt8C0jwAAAAh0RVh0V2FybmluZwDAG+aHAAAAB3RFWHRTb3VyY2UA9f+D6wAAAAh0RVh0Q29tbWVudAD2zJa/AAAABnRFWHRUaXRsZQCo7tInAAABV0lEQVQokaXSPWtTYRTA8d9N7k1zm6a+RG2x+FItgpu66uDQxbFurrr5OQQHR9FZnARB3PwSFqooddAStCBoqmLtS9omx+ESUXuDon94tnP+5+1JYm057GyQjZFP+l+S6G2FzlNe3WHtHc2TNI8zOlUUGLxsD1kDyR+EEQE2P/L8Jm/uk6RUc6oZaYM0JxtnpEX9AGPTtM6w7yzVEb61EaSNn4QD3j5m4QabH6hkVFLSUeqHyCeot0ib6BdNVGscPM/hWWr7S4Tw9TUvbpFUitHTnF6XrS+sL7O6VBSausT0FZonSkb+nZUFFm+z8Z5up5Btr1Lby7E5Zq4yPrMrLR263ZV52g+LvfW3iy6PXubUNVrnhqYNF3bmiZ1i1MmLnL7OxIWh4T+IMpYeRNyrRzyZjWg/ioh+aVgZu4WfXxaixbsRve5fiwb8epTo8+kZjSPFf/sHvgNC0/mbjJbxPAAAAABJRU5ErkJggg==\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t]\n\t\t\t\t}\n\t\t]\n}\nresult = mailjet.send.create(data=data)\nprint result.status_code\nprint result.json()\n","lang":"python"},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Java","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"java","header":{"controls":{"copy":{}}},"source":"package com.my.project;\nimport com.mailjet.client.errors.MailjetException;\nimport com.mailjet.client.errors.MailjetSocketTimeoutException;\nimport com.mailjet.client.MailjetClient;\nimport com.mailjet.client.MailjetRequest;\nimport com.mailjet.client.MailjetResponse;\nimport com.mailjet.client.ClientOptions;\nimport com.mailjet.client.resource.Emailv31;\nimport org.json.JSONArray;\nimport org.json.JSONObject;\npublic class MyClass {\n    /**\n     * This call sends a message to the given recipient with inline attachment.\n     */\n    public static void main(String[] args) throws MailjetException, MailjetSocketTimeoutException {\n      MailjetClient client;\n      MailjetRequest request;\n      MailjetResponse response;\n      client = new MailjetClient(System.getenv(\"MJ_APIKEY_PUBLIC\"), System.getenv(\"MJ_APIKEY_PRIVATE\"), new ClientOptions(\"v3.1\"));\n      request = new MailjetRequest(Emailv31.resource)\n\t\t\t.property(Emailv31.MESSAGES, new JSONArray()\n                .put(new JSONObject()\n                    .put(Emailv31.Message.FROM, new JSONObject()\n                        .put(\"Email\", \"pilot@mailjet.com\")\n                        .put(\"Name\", \"Mailjet Pilot\"))\n                    .put(Emailv31.Message.TO, new JSONArray()\n                        .put(new JSONObject()\n                            .put(\"Email\", \"passenger1@mailjet.com\")\n                            .put(\"Name\", \"passenger 1\")))\n                    .put(Emailv31.Message.SUBJECT, \"Your email flight plan!\")\n                    .put(Emailv31.Message.TEXTPART, \"Dear passenger 1, welcome to Mailjet! May the delivery force be with you!\")\n                    .put(Emailv31.Message.HTMLPART, \"<h3>Dear passenger 1, welcome to <img src=\\\"cid:id1\\\"> <a href=\\\"https://www.mailjet.com/\\\">Mailjet</a>!</h3><br />May the delivery force be with you!\")\n                    .put(Emailv31.Message.INLINEDATTACHMENTS, new JSONArray()\n                        .put(new JSONObject()\n                            .put(\"ContentType\", \"image/png\")\n                            .put(\"Filename\", \"logo.png\")\n                            .put(\"ContentID\", \"id1\")\n                            .put(\"Base64Content\", \"iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAYAAAB/Ca1DAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAB3RJTUUH4wIIChcxurq5eQAAAAd0RVh0QXV0aG9yAKmuzEgAAAAMdEVYdERlc2NyaXB0aW9uABMJISMAAAAKdEVYdENvcHlyaWdodACsD8w6AAAADnRFWHRDcmVhdGlvbiB0aW1lADX3DwkAAAAJdEVYdFNvZnR3YXJlAF1w/zoAAAALdEVYdERpc2NsYWltZXIAt8C0jwAAAAh0RVh0V2FybmluZwDAG+aHAAAAB3RFWHRTb3VyY2UA9f+D6wAAAAh0RVh0Q29tbWVudAD2zJa/AAAABnRFWHRUaXRsZQCo7tInAAABV0lEQVQokaXSPWtTYRTA8d9N7k1zm6a+RG2x+FItgpu66uDQxbFurrr5OQQHR9FZnARB3PwSFqooddAStCBoqmLtS9omx+ESUXuDon94tnP+5+1JYm057GyQjZFP+l+S6G2FzlNe3WHtHc2TNI8zOlUUGLxsD1kDyR+EEQE2P/L8Jm/uk6RUc6oZaYM0JxtnpEX9AGPTtM6w7yzVEb61EaSNn4QD3j5m4QabH6hkVFLSUeqHyCeot0ib6BdNVGscPM/hWWr7S4Tw9TUvbpFUitHTnF6XrS+sL7O6VBSausT0FZonSkb+nZUFFm+z8Z5up5Btr1Lby7E5Zq4yPrMrLR263ZV52g+LvfW3iy6PXubUNVrnhqYNF3bmiZ1i1MmLnL7OxIWh4T+IMpYeRNyrRzyZjWg/ioh+aVgZu4WfXxaixbsRve5fiwb8epTo8+kZjSPFf/sHvgNC0/mbjJbxPAAAAABJRU5ErkJggg==\")))));\n      response = client.post(request);\n      System.out.println(response.getStatus());\n      System.out.println(response.getData());\n    }\n}\n","lang":"java"},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Go","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"go","header":{"controls":{"copy":{}}},"source":"/*\nThis call sends a message to the given recipient with inline attachment.\n*/\npackage main\nimport (\n\t\"fmt\"\n\t\"log\"\n\t\"os\"\n\tmailjet \"github.com/mailjet/mailjet-apiv3-go\"\n)\nfunc main () {\n\tmailjetClient := NewMailjetClient(os.Getenv(\"MJ_APIKEY_PUBLIC\"), os.Getenv(\"MJ_APIKEY_PRIVATE\"))\n\tmessagesInfo := []mailjet.InfoMessagesV31 {\n      mailjet.InfoMessagesV31{\n        From: &mailjet.RecipientV31{\n          Email: \"pilot@mailjet.com\",\n          Name: \"Mailjet Pilot\",\n        },\n        To: &mailjet.RecipientsV31{\n          mailjet.RecipientV31 {\n            Email: \"passenger1@mailjet.com\",\n            Name: \"passenger 1\",\n          },\n        },\n        Subject: \"Your email flight plan!\",\n        TextPart: \"Dear passenger 1, welcome to Mailjet! May the delivery force be with you!\",\n        HTMLPart: \"<h3>Dear passenger 1, welcome to <img src=\\\"cid:id1\\\"> <a href=\\\"https://www.mailjet.com/\\\">Mailjet</a>!</h3><br />May the delivery force be with you!\",\n        InlinedAttachments: &mailjet.InlinedAttachmentsV31{\n          mailjet.InlineAttachmentV31 {\n            ContentType: \"image/png\",\n            Filename: \"logo.png\",\n            ContentID: \"id1\",\n            Base64Content: \"iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAYAAAB/Ca1DAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAB3RJTUUH4wIIChcxurq5eQAAAAd0RVh0QXV0aG9yAKmuzEgAAAAMdEVYdERlc2NyaXB0aW9uABMJISMAAAAKdEVYdENvcHlyaWdodACsD8w6AAAADnRFWHRDcmVhdGlvbiB0aW1lADX3DwkAAAAJdEVYdFNvZnR3YXJlAF1w/zoAAAALdEVYdERpc2NsYWltZXIAt8C0jwAAAAh0RVh0V2FybmluZwDAG+aHAAAAB3RFWHRTb3VyY2UA9f+D6wAAAAh0RVh0Q29tbWVudAD2zJa/AAAABnRFWHRUaXRsZQCo7tInAAABV0lEQVQokaXSPWtTYRTA8d9N7k1zm6a+RG2x+FItgpu66uDQxbFurrr5OQQHR9FZnARB3PwSFqooddAStCBoqmLtS9omx+ESUXuDon94tnP+5+1JYm057GyQjZFP+l+S6G2FzlNe3WHtHc2TNI8zOlUUGLxsD1kDyR+EEQE2P/L8Jm/uk6RUc6oZaYM0JxtnpEX9AGPTtM6w7yzVEb61EaSNn4QD3j5m4QabH6hkVFLSUeqHyCeot0ib6BdNVGscPM/hWWr7S4Tw9TUvbpFUitHTnF6XrS+sL7O6VBSausT0FZonSkb+nZUFFm+z8Z5up5Btr1Lby7E5Zq4yPrMrLR263ZV52g+LvfW3iy6PXubUNVrnhqYNF3bmiZ1i1MmLnL7OxIWh4T+IMpYeRNyrRzyZjWg/ioh+aVgZu4WfXxaixbsRve5fiwb8epTo8+kZjSPFf/sHvgNC0/mbjJbxPAAAAABJRU5ErkJggg==\",\n          },\n        },\n      },\n    }\n\tmessages := mailjet.MessagesV31{Info: messagesInfo }\n\tres, err := m.SendMailV31(&messages)\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\tfmt.Printf(\"Data: %+v\\n\", res)\n}\n","lang":"go"},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"C#","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"csharp","header":{"controls":{"copy":{}}},"source":"using Mailjet.Client;\nusing Mailjet.Client.Resources;\nusing System;\nusing Newtonsoft.Json.Linq;\nnamespace Mailjet.ConsoleApplication\n{\n   class Program\n   {\n      /// <summary>\n      /// This call sends a message to the given recipient with inline attachment.\n      /// </summary>\n      static void Main(string[] args)\n      {\n         RunAsync().Wait();\n      }\n      static async Task RunAsync()\n      {\n         MailjetClient client = new MailjetClient(Environment.GetEnvironmentVariable(\"MJ_APIKEY_PUBLIC\"), Environment.GetEnvironmentVariable(\"MJ_APIKEY_PRIVATE\"))\n         {\n            Version = ApiVersion.V3_1,\n         };\n         MailjetRequest request = new MailjetRequest\n         {\n            Resource = Send.Resource,\n         }\n            .Property(Send.Messages, new JArray {\n                new JObject {\n                 {\"From\", new JObject {\n                  {\"Email\", \"pilot@mailjet.com\"},\n                  {\"Name\", \"Mailjet Pilot\"}\n                  }},\n                 {\"To\", new JArray {\n                  new JObject {\n                   {\"Email\", \"passenger1@mailjet.com\"},\n                   {\"Name\", \"passenger 1\"}\n                   }\n                  }},\n                 {\"Subject\", \"Your email flight plan!\"},\n                 {\"TextPart\", \"Dear passenger 1, welcome to Mailjet! May the delivery force be with you!\"},\n                 {\"HTMLPart\", \"<h3>Dear passenger 1, welcome to <img src=\\\"cid:id1\\\"> <a href=\\\"https://www.mailjet.com/\\\">Mailjet</a>!</h3><br />May the delivery force be with you!\"},\n                 {\"InlinedAttachments\", new JArray {\n                  new JObject {\n                   {\"ContentType\", \"image/png\"},\n                   {\"Filename\", \"logo.png\"},\n                   {\"ContentID\", \"id1\"},\n                   {\"Base64Content\", \"iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAYAAAB/Ca1DAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAB3RJTUUH4wIIChcxurq5eQAAAAd0RVh0QXV0aG9yAKmuzEgAAAAMdEVYdERlc2NyaXB0aW9uABMJISMAAAAKdEVYdENvcHlyaWdodACsD8w6AAAADnRFWHRDcmVhdGlvbiB0aW1lADX3DwkAAAAJdEVYdFNvZnR3YXJlAF1w/zoAAAALdEVYdERpc2NsYWltZXIAt8C0jwAAAAh0RVh0V2FybmluZwDAG+aHAAAAB3RFWHRTb3VyY2UA9f+D6wAAAAh0RVh0Q29tbWVudAD2zJa/AAAABnRFWHRUaXRsZQCo7tInAAABV0lEQVQokaXSPWtTYRTA8d9N7k1zm6a+RG2x+FItgpu66uDQxbFurrr5OQQHR9FZnARB3PwSFqooddAStCBoqmLtS9omx+ESUXuDon94tnP+5+1JYm057GyQjZFP+l+S6G2FzlNe3WHtHc2TNI8zOlUUGLxsD1kDyR+EEQE2P/L8Jm/uk6RUc6oZaYM0JxtnpEX9AGPTtM6w7yzVEb61EaSNn4QD3j5m4QabH6hkVFLSUeqHyCeot0ib6BdNVGscPM/hWWr7S4Tw9TUvbpFUitHTnF6XrS+sL7O6VBSausT0FZonSkb+nZUFFm+z8Z5up5Btr1Lby7E5Zq4yPrMrLR263ZV52g+LvfW3iy6PXubUNVrnhqYNF3bmiZ1i1MmLnL7OxIWh4T+IMpYeRNyrRzyZjWg/ioh+aVgZu4WfXxaixbsRve5fiwb8epTo8+kZjSPFf/sHvgNC0/mbjJbxPAAAAABJRU5ErkJggg==\"}\n                   }\n                  }}\n                 }\n                });\n         MailjetResponse response = await client.PostAsync(request);\n         if (response.IsSuccessStatusCode)\n         {\n            Console.WriteLine(string.Format(\"Total: {0}, Count: {1}\\n\", response.GetTotal(), response.GetCount()));\n            Console.WriteLine(response.GetData());\n         }\n         else\n         {\n            Console.WriteLine(string.Format(\"StatusCode: {0}\\n\", response.StatusCode));\n            Console.WriteLine(string.Format(\"ErrorInfo: {0}\\n\", response.GetErrorInfo()));\n            Console.WriteLine(response.GetData());\n            Console.WriteLine(string.Format(\"ErrorMessage: {0}\\n\", response.GetErrorMessage()));\n         }\n      }\n   }\n}\n","lang":"csharp"},"children":[]}]}]}]},"headings":[{"value":"Send with attached files","id":"send-with-attached-files","depth":1},{"value":"Example","id":"example","depth":3}],"frontmatter":{"title":"Mailjet Send API v3.1","seo":{"title":"Send with Attached Files - Mailjet Send API v3.1","description":"Attach files to emails with Mailjet Send API v3.1 using Attachments or InlinedAttachments, both needing Base64-encoded content and a MIME type.","priority":0.8}},"lastModified":"2026-08-26T10:53:57.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/docs/email-api/send-api-v31/send-attached-files","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}