Wysyłanie e-maili w węźle.js? [zamknięte]

Niedawno zacząłem programować mój pierwszy węzeł.js. Jednak odkryłem, że nie jestem w stanie utworzyć formularza kontaktowego, który wysyła bezpośrednio na mój e-mail, ponieważ nie mogę znaleźć żadnych modułów z węzła, który jest w stanie wysyłać e-maile.

Czy ktoś wie o węźle.biblioteka e-mail js czy przykładowy skrypt formularza kontaktowego?

Author: NycCompSci, 2010-11-06

11 answers

Node-email-templates to znacznie lepsza opcja: https://github.com/niftylettuce/node-email-templates

Posiada również wsparcie Dla windows

 128
Author: JimBastard,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-06 23:39:13

Nodemailer jest w zasadzie modułem, który daje możliwość łatwego wysyłania e-maili podczas programowania w Node.js. Istnieje kilka świetnych przykładów użycia modułu Nodemailer w http://www.nodemailer.com / . pełna instrukcja jak zainstalować i korzystać z podstawowej funkcjonalności Nodemailer znajduje się w tym linku.

Osobiście miałem problem z zainstalowaniem Nodemailera za pomocą npm, więc właśnie pobrałem źródło. Są instrukcje zarówno instalacji npm jak i pobieranie źródła.

Jest to bardzo prosty moduł w użyciu i polecam go każdemu, kto chce wysyłać e-maile za pomocą węzła.js. Powodzenia!

 139
Author: Eric Peterson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-20 10:15:49

Sprawdź emailjs

Po marnowaniu dużo czasu na próby, aby nodemailer działał z dużymi załącznikami, znalazł emailjs i szczęśliwy od tego czasu.

Obsługuje wysyłanie plików za pomocą zwykłych obiektów plików, a nie dużych buforów, jakich wymaga nodemailer. Oznacza, że można go połączyć np. z przesyłaniem załączników z formularza html do Mailera. Obsługuje również kolejkowanie..

Podsumowując, nie mam pojęcia dlaczego nodejitsu ppl wybrał nodemailer do oparcia swoich wersja włączona, emailjs jest po prostu znacznie bardziej zaawansowany.

 62
Author: silvio,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-08-20 17:07:48

Kompletny kod do wysyłania wiadomości e-mail za pomocą modułu 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();
});
 45
Author: Vicky,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-26 08:45:56

@JimBastard ' s accepted answer appears to be dated, I had a look and that mailer lib has not been touched in over 7 months, has several bugs listed, and is not registered in npm.

Nodemailer z pewnością wygląda na najlepszą opcję, jednak url podany w innych odpowiedziach w tym wątku to wszystkie 404 ' ING.

Nodemailer twierdzi, że obsługuje łatwe wtyczki do Gmaila, hotmaila itp. a także ma naprawdę piękną dokumentację.

 23
Author: Dean Rather,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-05-15 14:22:46

Zawsze możesz użyć AlphaMail (disclosure: jestem jednym z deweloperów stojących za tym ).

Wystarczy zainstalować za pomocą NPM :

npm install alphamail

Zarejestruj konto AlphaMail. Zdobądź token, a następnie możesz rozpocząć wysyłanie za pomocą usługi 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
);

Oraz w interfejsie graficznym AlphaMail (Dashboard) będziesz mógł edytować szablon z danymi, które wysłałeś:

<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>

Szablony są napisane w Comlang , jest to prosty szablon język specjalnie zaprojektowany dla wiadomości e-mail.

 8
Author: Robin Orheden,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-27 14:33:07

Dojrzały, prosty w użyciu i ma wiele funkcji, jeśli proste nie jest wystarczające: Nodemailer: https://github.com/andris9/nodemailer (Uwaga poprawny url!)

 7
Author: Otto Kekäläinen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-06-02 12:09:34

Moduł Nodemailer jest najprostszym sposobem wysyłania wiadomości e-mail w węźle.js.

Wypróbuj przykładowy formularz: http://www.tutorialindustry.com/nodejs-mail-tutorial-using-nodemailer-module

Dodatkowe informacje: http://www.nodemailer.com/

 5
Author: aacharya_vaddey,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-14 14:59:19

Npm ma kilka pakietów, ale żaden nie osiągnął jeszcze wersji 1.0. Najlepsze typy z npm list mail:

[email protected]
[email protected]
[email protected]
 2
Author: Ezku,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-10-31 14:18:22

Zdecydowanie chcesz użyć https://github.com/niftylettuce/node-email-templates ponieważ obsługuje nodemailer / postmarkapp i ma piękne asynchroniczne wsparcie szablonu e-mail wbudowany.

 2
Author: Some dude,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-01 08:40:36

Campaign jest kompleksowym rozwiązaniem do wysyłania wiadomości e-mail w węźle i jest wyposażony w bardzo prosty API.

Przykładasz to w ten sposób.

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

Aby wysyłać e-maile, możesz użyć Mandrill , który jest darmowy i niesamowity. Po prostu ustaw swój klucz API, w ten sposób:

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

(jeśli chcesz wysyłać wiadomości e-mail za pomocą innego dostawcy, sprawdź dokumenty)

Następnie, gdy chcesz wysłać e-mail, możesz to zrobić w następujący sposób:

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 repo posiada dość obszerną dokumentację .

 2
Author: bevacqua,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-02 08:57:03