with nodejs node how enviar correo email node.js attachment

email - how - Enviando correos con adjuntos vía NodeJS



nodemailer (12)

¿Has probado Nodemailer ?

Nodemailer soporta

  • Unicode para usar cualquier personaje.
  • Contenidos HTML, así como alternativa de texto plano.
  • Archivos adjuntos
  • Imágenes incrustadas en HTML
  • SSL (pero no STARTTLS)

¿Hay alguna biblioteca para NodeJS para enviar correos con archivos adjuntos?


Enviar con correo urgente ( https://www.npmjs.com/package/express-mailer )

Enviar PDF ->

var pdf="data:application/pdf;base64,JVBERi0xLjM..etc" attachments: [ { filename: ''archive.pdf'', contents: new Buffer(pdf.replace(/^data:application//(pdf);base64,/,''''), ''base64'') } ]

Enviar imagen ->

var img = ''data:image/jpeg;base64,/9j/4AAQ...etc'' attachments: [ { filename: ''myImage.jpg'', contents: new Buffer(img.replace(/^data:image//(png|gif|jpeg);base64,/,''''), ''base64'') } ]

Enviar txt ->

attachments: [ { filename: ''Hello.txt'', contents: ''hello world!'' } ]


No lo he usado pero nodemailer ( npm install nodemailer ) se parece a lo que quieres.


Nodemailer para cualquier necesidad de correo de nodejs. Es lo mejor en este momento: D


Otra biblioteca alternativa para probar es emailjs .

Yo mismo probé algunas de las sugerencias, pero el código en ejecución se quejó de que send_mail () y sendMail () no están definidos (aunque simplemente copié y pegué el código con pequeños ajustes). Estoy usando los nodos 0.12.4 y npm 2.10.1. No tuve problemas con emailjs, eso solo funcionó para mí. Y tiene un bonito envoltorio alrededor de los archivos adjuntos, por lo que puede adjuntarlo de varias maneras a su gusto y fácilmente, en comparación con los ejemplos de nodemailer aquí.



Prueba con nodemailer, por ejemplo prueba esto:

var nodemailer = require(''nodemailer''); nodemailer.SMTP = { host: ''mail.yourmail.com'', port: 25, use_authentication: true, user: ''[email protected]'', pass: ''somepasswd'' }; var message = { sender: "[email protected]", to:''[email protected]'', subject: '''', html: ''<h1>test</h1>'', attachments: [ { filename: "somepicture.jpg", contents: new Buffer(data, ''base64''), cid: cid } ] };

por fin envia el mensaje

nodemailer.send_mail(message, function(err) { if (!err) { console.log(''Email send ...''); } else console.log(sys.inspect(err)); });



Puedes usar la API oficial de google para esto. Han proporcionado paquete para el nodo para este propósito. google oficial de la API

He adjuntado parte de mi código que hizo el adjunto por mí.

function makeBody(subject, message) { var boundary = "__myapp__"; var nl = "/n"; var attach = new Buffer(fs.readFileSync(__dirname + "/../"+fileName)) .toString("base64"); // console.dir(attach); var str = [ "MIME-Version: 1.0", "Content-Transfer-Encoding: 7bit", "to: " + receiverId, "subject: " + subject, "Content-Type: multipart/alternate; boundary=" + boundary + nl, "--" + boundary, "Content-Type: text/plain; charset=UTF-8", "Content-Transfer-Encoding: 7bit" + nl, message+ nl, "--" + boundary, "--" + boundary, "Content-Type: Application/pdf; name=myPdf.pdf", ''Content-Disposition: attachment; filename=myPdf.pdf'', "Content-Transfer-Encoding: base64" + nl, attach, "--" + boundary + "--" ].join("/n"); var encodedMail = new Buffer(str).toString("base64").replace(//+/g, ''-'').replace(////g, ''_''); return encodedMail; }

PD gracias a himanshu por su intensa investigación en este


También puede utilizar la biblioteca de Amazon SES de AwsSum:

Allí, hay una operación llamada SendEmail y SendRawEmail, la última de las cuales puede enviar archivos adjuntos a través del servicio.


utilizar el paquete de correo es muy flexible y fácil.


Sí, es bastante simple, uso nodemailer: npm install nodemailer --save

var mailer = require(''nodemailer''); mailer.SMTP = { host: ''host.com'', port:587, use_authentication: true, user: ''[email protected]'', pass: ''xxxxxx'' };

Luego lee un archivo y envía un correo electrónico:

fs.readFile("./attachment.txt", function (err, data) { mailer.send_mail({ sender: ''[email protected]'', to: ''[email protected]'', subject: ''Attachment!'', body: ''mail content...'', attachments: [{''filename'': ''attachment.txt'', ''content'': data}] }), function(err, success) { if (err) { // Handle error } } });