Я пытаюсь отправить изображения в виде вложений к электронным письмам, но мне сложно понять, как это сделать.
Я использую Mailgun для отправки почты, Cloudinary для загрузки изображений, MongoDB в качестве базы данных и Node.js / Express в качестве моего бэкенда.
Пользовательский процесс выглядит так:
- Пользователь отправляет фотографии на сайт
- Изображения загружаются через Cloudinary, а прямая ссылка на каждое изображение сохраняется в базе данных MongoDB
- Почта отправляется через Mailgun для информирования пользователей о новом сообщении со ссылками на изображения в теле
Очевидно, что это не идеально, потому что вам нужно нажимать каждую ссылку отдельно, чтобы увидеть и загрузить изображения. Я хотел бы прикрепить их непосредственно к электронному письму, чтобы пользователю было проще загружать изображения.
Я посмотрел документацию для Mailgun, но не похоже, чтобы нелокальные изображения можно было отправлять в виде вложений. Я что-то упускаю?
Я попытался использовать параметры «inline» и «attachment» для Mailgun, но в итоге получаю сообщение об ошибке, указывающее, что файл / каталог не может быть найден.
var pictures = [];
post.images.forEach(function(photos){
pictures.push(photos + " ");
return pictures;
});
var attch = new mailgun.Attachment({data: pictures[0], filename: "picture"});
var data = {
from: "email <email@email.com>",
to: "email@email.com",
subject: 'this is an email',
html: 'here is a new post and here are the images in that post',
attachment: attch
};
Ожидаемый результат - электронное письмо с прикрепленными изображениями нового сообщения или, в данном случае, одно изображение из этого сообщения.
Фактический результат - это сообщение об ошибке:
events.js:183
throw er; // Unhandled 'error' event
^
Error: ENOENT: no such file or directory, stat 'https://res.cloudinary.com/user/image/upload/image.jpg '