2015-05-10 4 views
2

Как вы встраиваете изображения с помощью Node.js mailgun. От чтения документации, они используютNode.js mailgun inline/embed images

-F [email protected]/cartman.jpg 

Проблема, хотя, его для ротора. Например,

Вот что я до сих пор

Mailgun.sendHtmlEmail({ 
    apiKey: '..', 
    domain: '...', 
    toEmail: created.email, 
    toName: created.email, 
    subject: 'mySite update', 
    htmlMessage: '<html><img style="display:block;" class="img1" src="cid:test.png" width="600" height="64" /></html>', 
    inline: 'email1/test.png', 
    fromEmail: '[email protected]', 
    fromName: 'Admin' 
}).exec({ 
    // An unexpected error occurred. 
    error: function (err){ 
     console.log(err); 
    }, 
    // OK. 
    success: function(){ 
    } 
}); 

Когда это было испытано, не было никакого изображения прилагается.

Я предполагаю, что вам нужно получить доступ к встроенному файлу для электронной почты способом Node.js.

Если да, то как вы это делаете?

Может кто-нибудь указать мне в правильном направлении, пожалуйста.

+0

Если это поможет, вам следует избегать встраивание изображений по электронной почте. У Sendgrid есть отличный ресурс по этой теме: [https://sendgrid.com/blog/embedding-images-emails-facts/](https://sendgrid.com/blog/embedding-images-emails-facts/) – bvanvugt

ответ

2

Я предлагаю вам использовать модуль mailcomposer для генерации сообщения электронной почты с вложениями.

mailcomposer = new MailComposer({forceEmbeddedImages: true}); 
mailcomposer.addAttachment({ 
    fileName: 'image.png', 
    filePath: IMAGES_PATH + '/image.png', 
    cid: '0o1q9i2w8u38ur.image.png' 
}); 

mailcomposer.setMessageOption({ 
    to: created.email, 
    from: '[email protected]', 
    subject: 'mySite update', 
    body: '...', 
    html: '<html>...</html>' 
}); 

И вы можете отправить его через mailgun:

mailcomposer.buildMessage(function (err, message) { 
    if (err) { 
    // ... 
    } 

    mailgun 
    .messages() 
    .sendMime({ 
     to: created.email, 
     message: message 
    }, function (err, response) { 
     // ... 
    }); 
}); 
+0

Спасибо, да, я сейчас смотрю на nodemailer и использую аккаунт gmail для отправки электронных писем. Я также попробую этот подход. – user2124726

+0

Чтобы уточнить: api mailgun api, показанный в этом ответе, находится в [bojand/mailgun-js] (https://github.com/bojand/mailgun-js). – justspamjustin

Смежные вопросы