Node.js'de e-posta mı gönderiyorsunuz? [kapalı]


291

Geçenlerde ilk düğümümü programlamaya başladım. Ancak, e-posta gönderebilen düğümden herhangi bir modül bulamadığım için doğrudan e-postama gönderilen bir iletişim formu oluşturamadığımı keşfettim.

Node.js e-posta kitaplığı veya örnek bir iletişim formu komut dosyası bilen var mı?


Ödeme: ec2 uygulamaları için AWS-SES ücretsiz 62000 e-posta.
Harvey

Yanıtlar:


142

düğüm-e-posta şablonları çok daha iyi bir seçenektir: https://github.com/niftylettuce/node-email-templates

Windows için de desteği var


1
Bu, dokümanların oldukça açıklayıcı olmasına yardımcı olur.
NycCompSci


7
çünkü onun nodemailer.com şimdi benim projemde kullanıyorum, iyi çalışıyor, nodejitsu gmail smtp sunucuları üzerinden posta gönderme hiç problem yaşamadım.
jascha

2
Son iki gün içinde node-email-templateskalkmaya ve koşmaya çalışmak için birkaç saat geçirdim . Ben sadece başlangıç ​​ve sonra göndermek için kullanmak bir nesne olarak kullanmak istiyorum. Çalışamıyor. Vazgeçmek.
jcollum

Öğretici değerli olduğunu kanıtladı (Nodejs Gamil OAuth2) masashi-k.blogspot.com.au/2013/06/…
eddyparkinson

162

Nodemailer temel olarak Node.js'de programlama yaparken size kolayca e-posta gönderme imkanı veren bir modüldür. Http://www.nodemailer.com/ adresindeki Nodemailer modülünün nasıl kullanılacağına dair bazı harika örnekler vardır . Nodemailer'in temel işlevlerinin nasıl kurulacağı ve kullanılacağı ile ilgili tüm talimatlar bu bağlantıda bulunmaktadır.

Ben şahsen Nodemailer npm kullanarak yükleme sorun vardı, bu yüzden sadece kaynak indirdi. Hem npm kurulumu hem de kaynağı indirmeyle ilgili talimatlar vardır.

Bu kullanımı çok basit bir modül ve Node.js kullanarak e-posta göndermek isteyen herkese tavsiye ederim. İyi şanslar!


2
nodemailer ilk önce çalıştı!
Capy

hem SMTP hem de Amazon SES ile test etti, benim için çalışıyor, ConnectedSets çerçevesine entegre edildi
Jean Vincent

basit, kurmak için zor bir iş. sadece örnek kodu kopyaladım, bilgilerim olarak değişti (SSL güvenli hakkında okuyun) ve işe yaradı. basit e-posta gönderen için harika!

Şimdi ticari bir proje, bu yüzden uyarılmalıdır.
elliotrock

2
Bu cevap bir örnek içermelidir
Abraham TS

65

E-postalara göz atın

Nodemailer'in büyük eklerle çalışmasını sağlamak için çok zaman harcadıktan sonra, o zamandan beri emailjs ve mutlu bulundu.

Normal Dosya nesnelerini kullanarak dosya göndermeyi destekler ve nodemailer için büyük Tamponlar gerektirmez. Ekleri bir html formundan postayla geçirmek için onu feda edebileceğiniz anlamına gelir. Ayrıca kuyrukları destekler ..

Sonuçta, nodejitsu ppl neden sürümlerini temel almak için nodemailer seçti hiçbir fikrim yok, emailjs sadece çok daha gelişmiş.


3
Uzun süreli kullanımdan sonra, bir sorunu düzeltmek için çatallamak zorunda kaldı: posta gönderme işlemi içinde olmadıkça, şey soket olaylarını işlemez ve sunucu bağlantıyı kapatacağından bir süre boşta kaldıktan sonra dururdu, ancak orada olayı işlemek ve dahili değişkenleri sıfırlamak için hiçbir şey yoktu. Çatallı versiyonu burada bulabilirsiniz: https://github.com/silvioster/emailjs . Bu sürüm, uzun zamandır tezgahlar olmadan istikrarlı çalışıyor.
silvio

18
önceki yoruma göre, orijinal yazar bu hatayı ve bazılarını da düzeltti, böylece çatal artık gerekli değil. en yeni sürüm https://github.com/eleith/emailjs
silvio

1
nodemailer sadece "büyük Tamponlar" değil, eklenti akışlarını destekler
JoshuaDavid

57

Nodemailer Modülünü Kullanarak E-posta göndermek için tam Kod

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();
});

4
Nodemailer Kullanmaktan daha kolay buldum node-email-templates. Belki de sadece temel düz metin / temel html e-posta göndermeye çalışıyordum, ancak node-email-templatesgerekli şekilde daha fazla kurulum buldum , oysa Nodemailertam anlamıyla 2 dakika içinde çalışıyordu.
JVG

4
Gmail dışında? Kendi smtp sunucumuzu nasıl yapılandırabiliriz?
Balaji Boggaram Ramanarayan

1
Ben WebPack ile derleme sonra bu hatayı alıyorum: TypeError: Cannot create property 'mailer' on string 'SMTP' at new Mail. Ben gibi mesajların gittin bu ve daha sonra bu sayfayı ama yine kaybetti.
user1063287

2
@ user1063287 Sadece "SMTP" parametresini kaldırın
Bojan Radivojevic Bomber

1
Bunun farkında olmak için, kimlik doğrulaması olarak kullandığınız kendi e-posta adresiniz dışında bir adresi değiştiremezsiniz. Gmail gönderenin adresini doğrulayabilmesi için adresi bu adrese zorlar.
Nicholas Mordecai

25

@ JimBastard'ın kabul edilen cevabı tarihli gibi görünüyor, bir gözüm vardı ve mailler lib 7 aydan fazla dokunulmadı, birkaç hata listeleniyor ve artık npm'de kayıtlı değil.

nodemailer kesinlikle en iyi seçenek gibi görünüyor, ancak bu konudaki diğer cevaplarda verilen url 404'tür.

nodemailer, gmail, hotmail vb. içine kolay eklentileri desteklediğini iddia ediyor ve ayrıca gerçekten güzel belgelere sahip.


9

Her zaman AlphaMail'i kullanabilirsiniz ( açıklama: Arkasındaki geliştiricilerden biriyim ).

Sadece NPM ile yükleyin :

npm install alphamail

Bir AlphaMail hesabına kaydolun. Jeton alın ve ardından AlphaMail hizmetiyle göndermeye başlayabilirsiniz.

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

Ve AlphaMail GUI'de ( Gösterge Tablosu ) şablonu gönderdiğiniz verilerle düzenleyebilirsiniz:

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

Şablonlar Comlang'da yazılmıştır, özellikle e-postalar için tasarlanmış basit bir şablon dilidir.


12
Alphamail artık resmen öldü. Çok talihsiz - Bu yazı nedeniyle tam olarak kullanmaya başladım. Geliştiricilere bir sonraki girişimlerinde en iyisini diliyorum.
masotime



3

npm birkaç paket var, ancak hiçbiri henüz 1.0'a ulaşmadı. En iyi seçimler npm list mail:

email@0.2.2
mail@0.1.1
mailer@0.3.0


2

kampanyası Düğümde e-posta göndermek için kapsamlı bir çözümdür ve çok basit bir API ile birlikte gelir.

Bunu böyle örneklersiniz.

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

E-posta göndermek için ücretsiz ve harika Mandrill'i kullanabilirsiniz . API anahtarınızı şu şekilde ayarlamanız yeterlidir:

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

(başka bir sağlayıcı kullanarak e-posta göndermek istiyorsanız, dokümanları kontrol edin)

Ardından, bir e-posta göndermek istediğinizde, bunu şu şekilde yapabilirsiniz:

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 repo oldukça kapsamlı belgelere sahiptir .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.