Node.js में ईमेल भेजना? [बन्द है]


291

मैंने हाल ही में अपना पहला नोड प्रोग्रामिंग शुरू किया है। हालाँकि, मुझे पता चला कि मैं मुझसे एक संपर्क फ़ॉर्म बनाने में असमर्थ हूँ जो सीधे मेरे ईमेल पर भेजता है क्योंकि मुझे नोड से कोई भी मॉड्यूल नहीं मिल रहा है जो ईमेल भेजने में सक्षम है।

क्या किसी को नोड.जेएस ईमेल लाइब्रेरी या एक नमूना संपर्क फ़ॉर्म स्क्रिप्ट का पता है?


चेकआउट: 2 एस के लिए AWS-SES मुक्त 62000 ईमेल।
हार्वे

जवाबों:


142

नोड-ईमेल-टेम्प्लेट बहुत बेहतर विकल्प है: https://github.com/niftylettuce/node-email-templates

इसमें विंडोज़ के लिए भी समर्थन है


1
यह वास्तव में मदद करता है डॉक्स बहुत आत्म व्याख्यात्मक हैं।
NycCompSci 4


7
Thats क्योंकि इसके nodemailer.com अब मैं इसे अपनी परियोजना में उपयोग कर रहा हूं, ठीक काम करता है, नोडजित्सु को जीमेल के smtp सर्वर के माध्यम से मेल भेजने में कोई समस्या नहीं थी।
जस्सा

2
मैंने पिछले दो दिनों में कुछ घंटे बिताए हैं node-email-templatesऔर उठने की कोशिश कर रहा हूं । मैं इसे केवल एक ऑब्जेक्ट के रूप में उपयोग करना चाहता हूं जिसे मैं प्रारंभ करता हूं और फिर बाद में भेजने के लिए उपयोग करता हूं। यह काम करने के लिए नहीं मिल सकता है। समर्पण।
जुल्म

ट्यूटोरियल मूल्यवान साबित हुआ (Nodejs Gamil OAuth2) masashi-k.blogspot.com.au/2013/06/…
eddyparkinson

162

Nodemailer मूल रूप से एक मॉड्यूल है जो आपको Node.js. में प्रोग्रामिंग करते समय आसानी से ईमेल भेजने की सुविधा देता है। Http://www.nodemailer.com/ पर Nodemailer मॉड्यूल का उपयोग करने के कुछ महान उदाहरण हैं । Nodemailer की बुनियादी कार्यक्षमता को स्थापित और उपयोग करने के तरीके के बारे में पूर्ण निर्देश इस लिंक में शामिल हैं।

मुझे व्यक्तिगत रूप से npmemailer को npm के उपयोग से स्थापित करने में समस्या थी, इसलिए मैंने केवल स्रोत डाउनलोड किया। स्रोत को स्थापित करने और डाउनलोड करने के लिए दोनों npm के निर्देश हैं।

यह उपयोग करने के लिए एक बहुत ही सरल मॉड्यूल है और मैं इसे Node.js. का उपयोग करके ईमेल भेजने के इच्छुक किसी भी व्यक्ति को सुझाऊंगा सौभाग्य!


2
nodemailer ने पहले काम किया!
कापी

एसएमटीपी और अमेज़ॅन एसईएस दोनों के साथ इसका परीक्षण किया, मेरे लिए काम करता है, इसे कनेक्टेडसेट्स फ्रेमवर्क में एकीकृत किया
जीन विंसेंट

इसे स्थापित करने के लिए सरल, कोई कठिन काम नहीं है। बस उदाहरण कोड की नकल की, मेरी जानकारी में बदल दिया (SSL सुरक्षित के बारे में पढ़ें) और यह सिर्फ काम किया। सरल ईमेल भेजने वाले के लिए बहुत अच्छा!

इसकी एक वाणिज्यिक परियोजना है, इसलिए चेतावनी दी जाए।
elliotrock

2
इस उत्तर में एक उदाहरण शामिल होना चाहिए
अब्राहम टीएस

65

ईमेलज की जाँच करें

बड़ी संलग्नक के साथ नोडेमेलर काम करने की कोशिश करने पर बहुत समय बर्बाद करने के बाद, ईमेलज पाए और तब से खुश हैं।

यह सामान्य फ़ाइल ऑब्जेक्ट्स का उपयोग करके फ़ाइलें भेजने का समर्थन करता है, और बोडर्स की आवश्यकता नहीं है क्योंकि नोडमैलर की आवश्यकता होती है। इसका मतलब है कि आप इसे html फार्म से मेलर से अटैचमेंट पास करने के लिए, fe, दुर्जेय से लिंक कर सकते हैं। यह भी कतार का समर्थन करता है ..

सब सब में, पता नहीं क्यों नोडजित्सु पीपीएल ने अपने संस्करण को आधार बनाने के लिए नोडेमेलर चुना, ईमेलजेस अभी बहुत अधिक उन्नत है।


3
कुछ लंबे समय तक उपयोग के बाद, इसे एक समस्या को ठीक करने के लिए कांटा करना पड़ा: जब तक मेल-भेजने की प्रक्रिया के अंदर, बात सॉकेट घटनाओं को संसाधित नहीं करेगी, और इस तरह निष्क्रिय होने के कुछ समय बाद रुक जाती है, क्योंकि सर्वर कनेक्शन बंद कर देगा, लेकिन वहां घटना को संसाधित करने और आंतरिक चर को रीसेट करने के लिए कुछ भी नहीं था। आप यहाँ कांटा संस्करण पा सकते हैं: https://github.com/silvioster/emailjs । यह संस्करण काफी समय से स्थिर रहा है, जिसमें कोई स्टॉल नहीं है।
सिल्वियो सिप

18
पिछली टिप्पणी के लिए अद्यतन, मूल लेखक ने तय किया कि बग और कुछ अन्य भी, इसलिए कांटा की आवश्यकता नहीं है। नवीनतम संस्करण https://github.com/eleith/emailjs
सिल्वियो

1
nodemailer अनुलग्नक धाराओं का समर्थन करता है, न केवल "विशाल बफ़र्स"
जोशुआ डेविड

57

नोडोडेलर मॉड्यूल का उपयोग करके ईमेल भेजने के लिए पूरा कोड

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 रास्ता आसान लगा node-email-templates। शायद यह इसलिए है क्योंकि मैं केवल मूल प्लेटेक्स्ट / बेसिक html ईमेल भेजने की कोशिश कर रहा था, लेकिन मुझे node-email-templatesजरूरत है कि मैं और अधिक सेटिंग करूं , जबकि Nodemailerवस्तुतः 2 मिनट में उठकर चल रहा था।
JVG

4
जीमेल के अलावा? हम अपने स्वयं के smtp सर्वर के लिए कैसे कॉन्फ़िगर कर सकते हैं?
बालाजी बोगगाराम रामनारायण

1
मैं webpack साथ संकलन के बाद यह त्रुटि प्राप्त: TypeError: Cannot create property 'mailer' on string 'SMTP' at new Mail। मैं इस तरह से और फिर इस पृष्ठ पर पोस्ट करने के लिए गया हूं, लेकिन फिर भी खो गया।
10106 पर user1063287

2
@ user1063287 बस "SMTP" पैरामीटर हटाएं
Bojan Radivojevic Bomber

1
बस इसलिए कि आप जागरूक हैं, आप अपने स्वयं के ईमेल पते के अलावा पते से कुछ भी नहीं बदल सकते हैं जिसे आपने प्रमाणीकरण के रूप में उपयोग किया है। जीमेल पते से उस तक को मजबूर करता है ताकि यह प्रेषक के अधिकार की पुष्टि कर सके।
निकोलस मोर्दकै

25

@ JimBastard का स्वीकृत उत्तर दिनांकित प्रतीत होता है, मेरा एक नज़र था और 7 महीने से अधिक समय में मेलर लिब को नहीं छुआ गया है, कई बग सूचीबद्ध हैं, और अब npm में पंजीकृत नहीं है।

nodemailer निश्चित रूप से सबसे अच्छे विकल्प की तरह दिखता है, हालांकि इस धागे पर अन्य उत्तरों में दिए गए url सभी 404'ing हैं।

नोडमैलर जीमेल, हॉटमेल आदि में आसान प्लगइन्स का समर्थन करने का दावा करता है और इसके पास वास्तव में सुंदर प्रलेखन भी है।


9

आप हमेशा अल्फामेल ( प्रकटीकरण: मैं इसके पीछे डेवलपर्स में से एक हूं ) का उपयोग कर सकता हूं

बस एनपीएम के साथ स्थापित करें :

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

और अल्फामेल GUI ( डैशबोर्ड ) में आप अपने द्वारा भेजे गए डेटा के साथ टेम्पलेट को संपादित कर पाएंगे:

<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 में लिखे गए हैं , यह एक सरल टेम्प्लेट भाषा है जिसे विशेष रूप से ईमेल के लिए डिज़ाइन किया गया है।


12
अल्फामेल अब आधिकारिक रूप से मर चुका है। बहुत दुर्भाग्यपूर्ण - मैंने इस पोस्ट के कारण इसका सही उपयोग करना शुरू कर दिया। डेवलपर्स को उनके अगले उद्यम में शुभकामनाएं।
मस्तूल


5

नोडमैलर मॉड्यूल नोड में ईमेल भेजने का सबसे सरल तरीका है।

इस नमूना उदाहरण के रूप में कोशिश करें: http://www.tutorialindustry.com/nodejs-mail-tutorial-using-nodemailer-module

अतिरिक्त जानकारी: http://www.nodemailer.com/


3
tutorialindustry.com/… काम नहीं कर रहा है!
यूसुफ

3

npm में कुछ पैकेज हैं, लेकिन कोई भी अभी तक 1.0 तक नहीं पहुंचा है। इससे सर्वश्रेष्ठ पिक्स npm list mail:

email@0.2.2
mail@0.1.1
mailer@0.3.0

3

आप निश्चित रूप से https://github.com/niftylettuce/node-email-templates का उपयोग करना चाहते हैं क्योंकि यह nodemailer / postmarkapp का समर्थन करता है और इसमें सुंदर async ईमेल टेम्पलेट समर्थन अंतर्निहित है।


2

अभियान नोड में ईमेल भेजने के लिए एक व्यापक समाधान है, और यह एक बहुत ही सरल एपीआई के साथ आता है।

आप इसे इस तरह से उदाहरण दें।

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

ईमेल भेजने के लिए, आप मैनड्रिल का उपयोग कर सकते हैं , जो मुफ़्त और भयानक है। बस इस तरह अपनी एपीआई कुंजी सेट करें:

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 रेपो में बहुत व्यापक प्रलेखन है

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.