Отправка сообщений электронной почты в Node.js?

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

Кто-нибудь знает о библиотеке электронной почты node.js или в форме контактного формуляра script?

Ответ 2

Nodemailer - это в основном модуль, который дает вам возможность легко отправлять электронную почту при программировании в Node.js. Есть несколько отличных примеров использования модуля Nodemailer в http://www.nodemailer.com/. Полные инструкции о том, как установить и использовать базовые функции Nodemailer, включены в эту ссылку.

Мне лично не удалось установить Nodemailer с помощью npm, поэтому я просто загрузил источник. Существуют инструкции для установки и загрузки npm.

Это очень простой модуль для использования, и я рекомендую его всем, кто хочет отправлять электронные письма с помощью Node.js. Удачи!

Ответ 3

Отъезд emailjs

После того, как вы потратили много времени на то, чтобы заставить nodemailer работать с большими вложениями, нашли emailjs и счастливы с тех пор.

Он поддерживает отправку файлов с использованием обычных объектов File, а не огромных буферов, поскольку требует nodemailer. Это означает, что вы можете связать его, т.е. Грознее передать вложения из html-формы в почтовую программу. Он также поддерживает очередь.

В общем, не знаю, почему nodejitsu ppl выбрал nodemailer, чтобы основывать свою версию на, emailjs намного более продвинут.

Ответ 4

Полный код для отправки электронной почты с использованием модуля nodemailer

var mailer = require("nodemailer");

// Use Smtp Protocol to send Email
var smtpTransport = mailer.createTransport("SMTP",{
    service: "Gmail",
    auth: {
        user: "[email protected]",
        pass: "gmail_password"
    }
});

var mail = {
    from: "Yashwant Chavan <[email protected]>",
    to: "[email protected]",
    subject: "Send Email Using Node.js",
    text: "Node.js New world for me",
    html: "<b>Node.js New world for me</b>"
}

smtpTransport.sendMail(mail, function(error, response){
    if(error){
        console.log(error);
    }else{
        console.log("Message sent: " + response.message);
    }

    smtpTransport.close();
});

Ответ 5

Принятый ответ @JimBastard, похоже, датирован, я посмотрел и что почтовая программа lib не была затронута более 7 месяцев, содержит несколько ошибок и больше не зарегистрирована в npm.

nodemailer, безусловно, выглядит как лучший вариант, однако url, предоставленный в других ответах на этот поток, все 404'ing.

nodemailer утверждает, что поддерживает легкие плагины в gmail, hotmail и т.д., а также имеет действительно красивую документацию.

Ответ 6

Вы всегда можете использовать AlphaMail (раскрытие: я один из разработчиков за ним).

Просто установите NPM:

npm install alphamail

Зарегистрируйтесь для учетной записи AlphaMail. Получите токен, а затем вы можете начать отправку с помощью службы AlphaMail.

var alphamail = require('alphamail');

var emailService = new alphamail.EmailService()
    .setServiceUrl('http://api.amail.io/v1/')
    .setApiToken('YOUR-ACCOUNT-API-TOKEN-HERE');

var person = {
    id: 1234,
    userName: "jdoe75",
    name: {
        first: "John",
        last: "Doe"
    },
    dateOfBirth: 1975
};

emailService.queue(new alphamail.EmailMessagePayload()
    .setProjectId(12345) // ID of your AlphaMail project (determines template, options, etc)
    .setSender(new alphamail.EmailContact("Sender Company Name", "[email protected]"))
    .setReceiver(new alphamail.EmailContact("John Doe", "[email protected]"))
    .setBodyObject(person) // Any serializable object
);

И в графическом интерфейсе AlphaMail (Dashboard) вы сможете отредактировать шаблон с данными, которые вы отправили:

<html>
    <body>
        <b>Name:</b> <# payload.name.last " " payload.name.first #><br>
        <b>Date of Birth:</b> <# payload.dateOfBirth #><br>

        <# if (payload.id != null) { #>
            <a href="http://company.com/sign-up">Sign Up Free!</a>
        <# } else { #>
            <a href="http://company.com/login?username=<# urlencode(payload.userName) #>">Sign In</a>
        <# } #>
    </body>
</html>

Шаблоны написаны в Comlang, это простой язык шаблонов, специально предназначенный для электронных писем.

Ответ 7

Зрелая, простая в использовании и имеющая множество функций, если просто не хватает: Nodemailer: https://github.com/andris9/nodemailer (обратите внимание на правильный URL!)

Ответ 10

Вы определенно хотите использовать https://github.com/niftylettuce/node-email-templates, так как он поддерживает nodemailer/postmarkapp и имеет встроенную поддержку шаблона электронной почты async.

Ответ 11

campaign - это комплексное решение для отправки писем в Node, и оно поставляется с очень простым API.

Вы примерьте это так.

var client = require('campaign')({
  from: '[email protected]'
});

Чтобы отправить электронную почту, вы можете использовать Mandrill, что является бесплатным и удивительным. Просто установите ключ API, например:

process.env.MANDRILL_APIKEY = '<your api key>';

(если вы хотите отправлять электронные письма с помощью другого провайдера, проверьте документы)

Затем, когда вы хотите отправить электронное письмо, вы можете сделать это следующим образом:

client.sendString('<p>{{something}}</p>', {
  to: ['[email protected]', '[email protected]'],
  subject: 'Some Subject',
  preview': 'The first line',
  something: 'this is what replaces that thing in the template'
}, done);

Репозиторий GitHub довольно обширная документация.