Отправка электронной почты в узле.Джей? [закрытый]


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

кто-нибудь знает узла.библиотека электронной почты js или пример сценария контактной формы?

11 251

11 ответов:

узел-email-шаблонов является гораздо лучшим вариантом: https://github.com/niftylettuce/node-email-templates

Он также поддерживает windows

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

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

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

проверить emailjs

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

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

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

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

var mailer = require("nodemailer");

// Use Smtp Protocol to send Email
var smtpTransport = mailer.createTransport("SMTP",{
    service: "Gmail",
    auth: {
        user: "gmail_id@gmail.com",
        pass: "gmail_password"
    }
});

var mail = {
    from: "Yashwant Chavan <from@gmail.com>",
    to: "to@gmail.com",
    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();
});

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

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

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

вы всегда можете использовать 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", "from@example.com"))
    .setReceiver(new alphamail.EmailContact("John Doe", "to@example.org"))
    .setBodyObject(person) // Any serializable object
);

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

<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, Это простой язык шаблонов, специально разработанный для электронной почты.

зрелый, простой в использовании и имеет множество функций, если простой не достаточно: Nodemailer:https://github.com/andris9/nodemailer (Обратите внимание на правильный url!)

модуль Nodemailer-это самый простой способ отправки электронной почты в узле.js.

попробуйте этот пример пример формы:http://www.tutorialindustry.com/nodejs-mail-tutorial-using-nodemailer-module

Дополнительная Информация: http://www.nodemailer.com/

npm имеет несколько пакетов, но ни один из них еще не достиг 1.0. Лучшие варианты из npm list mail:

email@0.2.2
mail@0.1.1
mailer@0.3.0

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

кампания это комплексное решение для отправки электронной почты в узле, и он поставляется с очень простым API.

вы пример его так.

var client = require('campaign')({
  from: 'you@gmail.com'
});

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

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

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

затем, когда вы хотите отправить электронной почты, вы можете сделать это так:

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

РЕПО GitHub имеет довольно обширная документация.