জিমেইল এবং নোডজেএস সহ নোডমিলার


110

আমি নোডেএলএসটি নোডজেএস ব্যবহার করে একটি পরিচিতি ফর্মটি প্রয়োগ করতে ব্যবহার করার চেষ্টা করি তবে এটি কেবল স্থানীয়ভাবে কাজ করে যা এটি কোনও রিমোট সার্ভারে কাজ করে না ...

আমার ত্রুটি বার্তা:

[website.fr-11 (out) 2013-11-09T15:40:26] { [AuthError: Invalid login - 534-5.7.14 <https://accounts.google.com/ContinueSignIn?sarp=1&scc=1&plt=AKgnsbvlX
[website.fr-11 (out) 2013-11-09T15:40:26] 534-5.7.14 V-dFQLgb7aRCYApxlOBuha5ESrQEbRXK0iVtOgBoYeARpm3cLZuUS_86kK7yPis7in3dGC
[website.fr-11 (out) 2013-11-09T15:40:26] 534-5.7.14 N1sqhr3D2IYxHAN3m7QLJGukwPSZVGyhz4nHUXv_ldo9QfqRydPhSvFp9lnev3YQryM5TX
[website.fr-11 (out) 2013-11-09T15:40:26] 534-5.7.14 XL1LZuJL7zCT5dywMVQyWqqg9_TCwbLonJnpezfBLvZwUyersknTP7L-VAAL6rhddMmp_r
[website.fr-11 (out) 2013-11-09T15:40:26] 534-5.7.14 A_5pRpA> Please log in via your web browser and then try again.
[website.fr-11 (out) 2013-11-09T15:40:26] 534-5.7.14 Learn more at https://support.google.com/mail/bin/answer.py?answer=787
[website.fr-11 (out) 2013-11-09T15:40:26] 534 5.7.14 54 fr4sm15630311wib.0 - gsmtp]
[website.fr-11 (out) 2013-11-09T15:40:26]   name: 'AuthError',
[website.fr-11 (out) 2013-11-09T15:40:26]   data: '534-5.7.14 <https://accounts.google.com/ContinueSignIn?sarp=1&scc=1&plt=AKgnsbvlX\r\n534-5.7.14 V-dFQLgb7aRCYApxlOBuha5ESrQEbRXK0iVtOgBoYeARpm3cLZuUS_86kK7yPis7in3dGC\r\n534-5.7.14 N1sqhr3D2IYxHAN3m7QLJGukwPSZVGyhz4nHUXv_ldo9QfqRydPhSvFp9lnev3YQryM5TX\r\n534-5.7.14 XL1LZuJL7zCT5dywMVQyWqqg9_TCwbLonJnpezfBLvZwUyersknTP7L-VAAL6rhddMmp_r\r\n534-5.7.14 A_5pRpA> Please log in via your web browser and then try again.\r\n534-5.7.14 Learn more at https://support.google.com/mail/bin/answer.py?answer=787\r\n534 5.7.14 54 fr4sm15630311wib.0 - gsmtp',
[website.fr-11 (out) 2013-11-09T15:40:26]   stage: 'auth' }

আমার নিয়ামক:

exports.contact = function(req, res){
    var name = req.body.name;
    var from = req.body.from;
    var message = req.body.message;
    var to = '*******@gmail.com';
    var smtpTransport = nodemailer.createTransport("SMTP",{
        service: "Gmail",
        auth: {
            user: "******@gmail.com",
            pass: "*****"
        }
    });
    var mailOptions = {
        from: from,
        to: to, 
        subject: name+' | new message !',
        text: message
    }
    smtpTransport.sendMail(mailOptions, function(error, response){
        if(error){
            console.log(error);
        }else{
            res.redirect('/');
        }
    });
}

14
google.com/accounts/DisplayUnlockCaptcha (দৃশ্যমানতার জন্য, নীচে ভাল মন্তব্যকারী পোস্ট করেছেন)। কেবল একবার অ্যাক্সেসের অনুমতি দিন এবং নোডমিলার স্বয়ংক্রিয়ভাবে লগইন করুন, এটি হবে।
laggingreflex

3
নোডমিলার ব্যবহার করে জিমেইলের মাধ্যমে মেল প্রেরণের জন্য সমস্ত কিছুর পরে, নীচের সেটিংসটি আমার পক্ষে কাজ করেছে ..
ফাইজানজাহাঙ্গির

উত্তর:


136

আমি নিম্নলিখিত url এ গিয়ে সমাধান করেছি (যে অ্যাকাউন্ট থেকে আমি মেইল ​​পাঠাতে চাইছি তার সাথে গুগলের সাথে সংযুক্ত থাকাকালীন):

https://www.google.com/settings/security/lesssecureapps

সেখানে আমি কম সুরক্ষিত অ্যাপ্লিকেশন সক্ষম করেছি।

সম্পন্ন


1
সাবাশ! এটি কাজ করছে, যদিও আমি এটি সেরা ধারণা বলে মনে করি না ... আমি আমার প্রথম ইমেল পেয়েছি..এইচএক্স
আক্কুসার

এটি সক্ষম করার সাথে সাথে এটি স্থানীয় পরিবেশেও কাজ করবে না। তিনি স্পষ্টভাবে উল্লেখ করেছিলেন যে এটি স্থানীয় পরিবেশে কাজ করছে এবং দূরবর্তী সার্ভারে কাজ করছে না। ঠাটের সমাধান কী?
অদিত্যা সাঁই

আপনার জিমেইল অ্যাকাউন্টে আপনার কাছে 2FA প্রমাণ থাকলে এটি আপনাকে সাহায্য করতে পারে না
সাশা রোমানভ

63

জিমেইলে সংযোগ করার জন্য নোডমিলারের অফিসিয়াল গাইড দেখুন:

https://community.nodemailer.com/using-gmail/

-

এটি করার পরে এটি আমার পক্ষে কাজ করে:

  1. কম সুরক্ষিত অ্যাপ্লিকেশনগুলি সক্ষম করুন - https://www.google.com/settings/security/lesssecureapps
  2. সাময়িকভাবে ক্যাপচা অক্ষম করুন যাতে আপনি নতুন ডিভাইস / সার্ভারটি সংযুক্ত করতে পারেন - https://accounts.google.com/b/0/displayunlockcaptcha

18
2 নম্বর আমার সমস্যাগুলি সমাধান করেছে solved গুগলের অ্যাকাউন্ট সেটিংসে আমি এই লিঙ্কটি কোথাও খুঁজে পাইনি। ধন্যবাদ!
প্রোগ্রামস্টেইনটার

1
একই অবস্থা. আমি এর আগে # 1 করেছি এবং লোকালহোস্টে ইমেলগুলি পেয়েছি, প্রযোজনায় চলে এসেছি এবং কিছুই কাজ করেনি। # 2 উত্পাদনের জন্য আমার সমস্যাটি স্থির করেছে। আপনাকে ধন্যবাদ
জন

49

সহজ সমাধান:

var nodemailer = require('nodemailer');
var smtpTransport = require('nodemailer-smtp-transport');

var transporter = nodemailer.createTransport(smtpTransport({
  service: 'gmail',
  host: 'smtp.gmail.com',
  auth: {
    user: 'somerealemail@gmail.com',
    pass: 'realpasswordforaboveaccount'
  }
}));

var mailOptions = {
  from: 'somerealemail@gmail.com',
  to: 'friendsgmailacc@gmail.com',
  subject: 'Sending Email using Node.js[nodemailer]',
  text: 'That was easy!'
};

transporter.sendMail(mailOptions, function(error, info){
  if (error) {
    console.log(error);
  } else {
    console.log('Email sent: ' + info.response);
  }
});  

ধাপ 1:

এখানে যান https://myaccount.google.com/lesssecureapps এবং কম সুরক্ষিত অ্যাপ্লিকেশনগুলির জন্য সক্ষম করুন। এটি যদি কাজ না করে তখন

ধাপ ২

এখানে যান https://accounts.google.com/DisplayUnlockCaptcha এবং সক্ষম / চালিয়ে যান এবং তারপরে চেষ্টা করুন।

আমার একা পদক্ষেপ একা কাজ করেনি তাই আমাকে দ্বিতীয় ধাপে যেতে হয়েছিল।

আমি নোডমিলার-এসএমটিপি-ট্রান্সপোর্ট প্যাকেজটি অপসারণ করার চেষ্টা করেছি এবং আমার আশ্চর্যরূপে এটি কার্যকর হয়। তবে তারপরে যখন আমি আমার সিস্টেমটি পুনরায় চালু করি তখন এটি আমাকে একই ত্রুটি দেয়, সুতরাং আমাকে যেতে হবে এবং কম সুরক্ষিত অ্যাপটি চালু করতে হবে (আমি আমার কাজের পরে এটিকে অক্ষম করেছি)।

তারপর মজা করার জন্য আমি এটি বন্ধ (কম সুরক্ষিত অ্যাপ্লিকেশন) দিয়ে চেষ্টা করেছি এবং ভোলা এটি আবার কাজ করেছে!


1
পদক্ষেপ 1 এবং 2 খুব সহায়ক ছিল। ধন্যবাদ! আমি আপনার সমাধানটি দেখার আগে আমি পদক্ষেপ 1 চেষ্টা করেছি এবং কাজ করে নি তবে স্টেপ 2 দিয়ে এটি একটি যাদু করেছে!
মিসস্ট্যাক

"স্টিম্প্ট ট্রান্সপোর্ট কোনও ফাংশন নয়"
জেভিলে

আপনি যেভাবে আমাদের সাথে ভাগ করেছেন সেভাবেই আমি উভয়ের সাথে চেষ্টা করেছিলাম কিন্তু বার বার একই ত্রুটিটি পাচ্ছি {ত্রুটি: ETIMEDOUT 74.125.68.108:465 টিসিপি সংযোগরেপ করুন.পরে সংযোগ করুন [অনম্পূর্ণ হিসাবে] (নেট.জেএস: 1097: 14) ভুল: ' ETIMEDOUT ', কোড:' ECONNECTION ', syscall:' কানেক্ট ', ঠিকানা: '74 .125.68.108', পোর্ট: 465, কমান্ড: 'CONN'}
আনোয়ার হুসেন

@ আনোয়ার হুসেন: আমারও আবার একই ত্রুটি হচ্ছে
পাপ্পা এস

42

Gmail এ সংযোগ করার জন্য আপনার একটি XOAuth2 টোকেন ব্যবহার করা উচিত । কোনও উদ্বেগ নেই, নোডমিলার ইতিমধ্যে এটি সম্পর্কে জানে:

var smtpTransport = nodemailer.createTransport('SMTP', {
    service: 'Gmail',
    auth: {
      XOAuth2: {
        user: smtpConfig.user,
        clientId: smtpConfig.client_id,
        clientSecret: smtpConfig.client_secret,
        refreshToken: smtpConfig.refresh_token,
        accessToken: smtpConfig.access_token,
        timeout: smtpConfig.access_timeout - Date.now()
      }
    }
  };

আপনার অ্যাপ্লিকেশনটি নিবন্ধ করার জন্য আপনাকে গুগল ক্লাউড কনসোলে যেতে হবে । তারপরে আপনি যে অ্যাকাউন্টগুলি ব্যবহার করতে চান তার জন্য আপনাকে অ্যাক্সেস টোকেনগুলি পুনরুদ্ধার করতে হবে। তুমি ব্যবহার করতে পার পাসপোর্টজ

এটি আমার কোডটিতে কেমন দেখাচ্ছে তা এখানে:

var passport = require('passport'),
    GoogleStrategy = require('./google_oauth2'),
    config = require('../config');

passport.use('google-imap', new GoogleStrategy({
  clientID: config('google.api.client_id'),
  clientSecret: config('google.api.client_secret')
}, function (accessToken, refreshToken, profile, done) {
  console.log(accessToken, refreshToken, profile);
  done(null, {
    access_token: accessToken,
    refresh_token: refreshToken,
    profile: profile
  });
}));

exports.mount = function (app) {
  app.get('/add-imap/:address?', function (req, res, next) {
    passport.authorize('google-imap', {
        scope: [
          'https://mail.google.com/',
          'https://www.googleapis.com/auth/userinfo.email'
        ],
        callbackURL: config('web.vhost') + '/add-imap',
        accessType: 'offline',
        approvalPrompt: 'force',
        loginHint: req.params.address
      })(req, res, function () {
        res.send(req.user);
      });
  });
};

9
জিমেইল অ্যাকাউন্টের সাথে নোডজেএসে ইমেল প্রেরণের আরও সহজ সমাধান কি আছে?
tonymx227


আপনি কী ব্যাখ্যা করতে পারেন যে পাসপোর্ট.আর্টিফাইজেশন কী করে এবং আপনার সুযোগ, কলব্যাকারল এবং এরকম কেন দরকার, আপনি কেবল ক্লায়েন্টআইডি এবং গোপনীয় জিনিস দিয়ে এটি করতে পারবেন না কেন?
ইসমাইল

passport.authorizeঅনুরূপ passport.authenticateছাড়া এটা বর্তমান সেশন আপডেট করার জন্য প্রচেষ্টা নেই। আপনাকে পাস করতে হবে callbackURLকারণ ওআউথ হ্যান্ডশেকের পরে, গুগলকে ব্যবহারকারীদের কোথায় পুনর্নির্দেশ করতে হবে তা জানতে হবে যাতে হ্যান্ডশেকটি সমাপ্ত হয়।
লরেন্ট পেরিন


14

জরিমানা কাজ করেছেন:

1- ইনস্টল নোডমিলার , প্যাকেজ ইনস্টল না হলে ( সেমিডিতে টাইপ করুন):npm install nodemailer

2- https://myaccount.google.com/lesssecureapps এ যান এবং কম সুরক্ষিত অ্যাপ্লিকেশনগুলিকে মঞ্জুরি দিন

3- কোড লিখুন:

var nodemailer = require('nodemailer');

var transporter = nodemailer.createTransport({
    service: 'gmail',
    auth: {
        user: 'trueUsername@gmail.com',
        pass: 'truePassword'
    }
});

const mailOptions = {
    from: 'any@any.com', // sender address
    to: 'true@true.com', // list of receivers
    subject: 'test mail', // Subject line
    html: '<h1>this is a test mail.</h1>'// plain text body
};

transporter.sendMail(mailOptions, function (err, info) {
    if(err)
        console.log(err)
    else
        console.log(info);
})

4- উপভোগ করুন!


11

আমারও একই সমস্যা হয়েছিল। আমি লোকালহোস্টে আমার সিস্টেমটি পরীক্ষা করেছিলাম তারপরে সার্ভারে স্থাপন করা (যা বিভিন্ন দেশে অবস্থিত) তখন আমি যখন প্রোডাকশন সার্ভারে সিস্টেমটি চেষ্টা করি তখন আমি এই ত্রুটিটি দেখেছি saw আমি এটি ঠিক করার জন্য এগুলি চেষ্টা করেছি:

  1. https://www.google.com/settings/security/lesssecureapps এটি সক্ষম করেছে তবে এটি আমার সমাধান ছিল না
  2. https://g.co/allowaccess আমি সীমিত সময়ের জন্য বাইরে থেকে অ্যাক্সেসের অনুমতি দিয়েছি এবং এটি আমার সমস্যার সমাধান করেছে।

2
G.co/allowaccess লিংক কি আমার জন্য এটি সংশোধন করা হয়েছে (ফেলা ইতিমধ্যেই সক্ষম lesssecureapps) ছিল - ধন্যবাদ!

10

আমার জন্য বন্দর এবং সুরক্ষা ব্যবহার করে এইভাবে কাজ করছে (সুরক্ষা সেটিংস ছাড়াই পিএইচপি ব্যবহার করে জিমেইল থেকে ইমেল প্রেরণে আমার সমস্যা ছিল)

আমি আশা করি কাউকে সাহায্য করবে

var sendEmail = function(somedata){
  var smtpConfig = {
    host: 'smtp.gmail.com',
    port: 465,
    secure: true, // use SSL, 
                  // you can try with TLS, but port is then 587
    auth: {
      user: '***@gmail.com', // Your email id
      pass: '****' // Your password
    }
  };

  var transporter = nodemailer.createTransport(smtpConfig);
  // replace hardcoded options with data passed (somedata)
  var mailOptions = {
    from: 'xxxx@gmail.com', // sender address
    to: 'yyyy@gmail.com', // list of receivers
    subject: 'Test email', // Subject line
    text: 'this is some text', //, // plaintext body
    html: '<b>Hello world ✔</b>' // You can choose to send an HTML body instead
  }

  transporter.sendMail(mailOptions, function(error, info){
    if(error){
      return false;
    }else{
      console.log('Message sent: ' + info.response);
      return true;
    };
  });
}

exports.contact = function(req, res){
   // call sendEmail function and do something with it
   sendEmail(somedata);
}

সমস্ত কনফিগারেশন এখানে তালিকাভুক্ত করা হয়েছে (উদাহরণ সহ)


10

উপরের সমাধানগুলির মধ্যে আমার পক্ষে কাজ হয়নি। নোডমেলারের ডকুমেন্টেশনে বিদ্যমান কোডটি আমি ব্যবহার করেছি । দেখে মনে হচ্ছে:

let transporter = nodemailer.createTransport({
    host: 'smtp.gmail.com',
    port: 465,
    secure: true,
    auth: {
        type: 'OAuth2',
        user: 'user@example.com',
        serviceClient: '113600000000000000000',
        privateKey: '-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBg...',
        accessToken: 'ya29.Xx_XX0xxxxx-xX0X0XxXXxXxXXXxX0x',
        expires: 1484314697598
    }
}); 

ধন্যবাদ, বন্ধু ! :) thissss ---> হোস্ট: 'smtp.gmail.com', পোর্ট: 465, নিরাপদ: সত্য, আমার জন্য কাজ করেছেন
প্রবীণ বিষ্ণু

@ প্রবীণ বিষ্ণু কোনও সমস্যা নেই, আপনি যদি এই উত্তরটি ভোট দিয়ে থাকেন তবে আরও লোক এটি দেখতে পাবে। এটি তাদের পাশাপাশি সহায়তা করতে পারে।
হামিদ

হাই, আমি ইতিমধ্যে এটি একটি পুরানো জানি, কিন্তু আপনি পরিষেবা ক্লিভেন্ট, প্রাইভেটকি এবং অ্যাক্সেস টোকেন কোথায় পেয়েছেন তা মনে করবেন? ধন্যবাদ.
আলজহান ইয়ামারো

@ আলজহান ইয়ামারো মেল পরিষেবাটি এটি সরবরাহ করবে। আমার ক্ষেত্রে এটি জিমেইল ছিল। আপনি এখানে আরও পড়তে পারেন: stackoverflow.com/questions/36214968/…
হামিদ

9

আপনার জিমেইল অ্যাকাউন্টে ক্যাপচা অক্ষম করার চেষ্টা করুন; সম্ভবত অনুরোধকারীর আইপি ঠিকানার ভিত্তিতে ট্রিগার করা হচ্ছে। দেখুন: কীভাবে GMail কে একটি ফ্রি এসএমটিপি সার্ভার হিসাবে ব্যবহার করবেন এবং ক্যাপচা কাটিয়ে উঠবেন


9

গ্রেগ টি-র উত্তরে উল্লিখিত এই নিবন্ধে বর্ণিত সবচেয়ে সহজ পদ্ধতিটি আমি পেয়েছি , অ্যাকাউন্টের জন্য 2 এফএ চালু করার পরে উপলব্ধ একটি অ্যাপ্লিকেশন পাসওয়ার্ড তৈরি করা ছিল।

myaccount.google.com> সাইন ইন এবং সুরক্ষা> গুগলে সাইন ইন> অ্যাপ্লিকেশন পাসওয়ার্ড

এটি আপনাকে অ্যাকাউন্টের জন্য একটি বিকল্প পাসওয়ার্ড দেয়, তারপরে আপনি কেবল নোডমেলারকে একটি সাধারণ এসএমটিপি পরিষেবা হিসাবে কনফিগার করেন।

var smtpTransport = nodemailer.createTransport({
    host: "smtp.gmail.com",
    port: 587,
    auth: {
        user: "username@gmail.com",
        pass: "app password"
    }
});

গুগল Oauth2 কে সেরা বিকল্প হিসাবে প্রস্তাব দেওয়ার পরেও এই পদ্ধতিটি সহজ এবং এই প্রশ্নটিতে এখনও উল্লেখ করা হয়নি।

অতিরিক্ত টিপ: আমি এটিও পেয়েছি যে আপনি নিজের অ্যাপ্লিকেশনটির নামটি "থেকে" ঠিকানার সাথে যুক্ত করতে পারেন এবং আপনি অন্য ঠিকানা ব্যবহার করার চেষ্টা করলে GMail কেবল অ্যাকাউন্ট ইমেলের মতো এটি প্রতিস্থাপন করে না। অর্থাত।

from: 'My Pro App Name <username@gmail.com>'

সর্বদা এটি 1 ব্যবহার করুন। অ্যাপ্লিকেশনটির পাসওয়ার্ড সেট করতে আপনাকে 2-কারখানার প্রমাণ সেট করতে হবে। কম নিরাপদে বিপরীতে।
gdfgdfg

8

এটি nodemailer-smtp-transportক্রিয়েট্রান্সপোর্টের অভ্যন্তরে মডিউল ব্যবহার করে সমাধান করা হয়েছে ।

var smtpTransport = require('nodemailer-smtp-transport');

var transport = nodemailer.createTransport(smtpTransport({
    service: 'gmail',
    auth: {
        user: '*******@gmail.com',
        pass: '*****password'
    }
}));

4

আপনি যদি এক্সপ্রেস ব্যবহার করেন তবে খুব সুন্দরভাবে express-mailerমোড়ানো nodemailerএবং ব্যবহার করা খুব সহজ:

//# config/mailer.js    
module.exports = function(app) {
  if (!app.mailer) {
    var mailer = require('express-mailer');
    console.log('[MAIL] Mailer using user ' + app.config.mail.auth.user);
    return mailer.extend(app, {
      from: app.config.mail.auth.user,
      host: 'smtp.gmail.com',
      secureConnection: true,
      port: 465,
      transportMethod: 'SMTP',
      auth: {
        user: app.config.mail.auth.user,
        pass: app.config.mail.auth.pass
      }
    });
  }
};

//# some.js
require('./config/mailer.js)(app);
app.mailer.send("path/to/express/views/some_view", {
  to: ctx.email,
  subject: ctx.subject,
  context: ctx
}, function(err) {
  if (err) {
    console.error("[MAIL] Email failed", err);
    return;
  }
  console.log("[MAIL] Email sent");
});

//#some_view.ejs
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title><%= subject %></title>
  </head>
  <body>
  ... 
  </body>
</html>

4

আপনার সমস্ত কোড ঠিক আছে কেবলমাত্র জিনিসগুলি কেবল https://myaccount.google.com/security লিঙ্কটিতে যান to

এবং নীচে স্ক্রোল করুন এবং আপনি কম সুরক্ষিত অ্যাপ্লিকেশনগুলিকে মঞ্জুরি পাবেন: চালু এবং চালিয়ে যান, আপনি কোনও ত্রুটি খুঁজে পাবেন না।



4

কিছু কারণে, কেবল কম সুরক্ষিত অ্যাপ্লিকেশন কনফিগারেশনের অনুমতি দেওয়া আমার পক্ষে এমনকি ক্যাপচা জিনিসটিরও কাজ করে না। আমাকে আরও একটি পদক্ষেপ করতে হয়েছিল যা আইএমএপি কনফিগারেশন সক্ষম করছে:

গুগলের সহায়তা পৃষ্ঠা থেকে: https://support.google.com/mail/answer/7126229?p=WebLoginRequired&visit_id=1-636691283281086184-1917832285&rd=3#cantsignin

  • উপরের ডানদিকে, সেটিংস সেটিংসে ক্লিক করুন।
  • সেটিংস ক্লিক করুন।
  • ফরওয়ার্ডিং এবং পিওপি / আইএমএপ ট্যাবে ক্লিক করুন।
  • "IMAP অ্যাক্সেস" বিভাগে, IMAP সক্ষম করুন নির্বাচন করুন।
  • পরিবর্তনগুলি সংরক্ষণ করুন ক্লিক করুন।

3
exports.mailSend = (res, fileName, object1, object2, to, subject,   callback)=> {
var smtpTransport = nodemailer.createTransport('SMTP',{ //smtpTransport
host: 'hostname,
port: 1234,
secureConnection: false,
//   tls: {
//     ciphers:'SSLv3'
// },
auth: {
  user: 'username',
  pass: 'password'
}

});
res.render(fileName, {
info1: object1,
info2: object2
}, function (err, HTML) {

smtpTransport.sendMail({
  from: "mail@from.com",
  to: to,
  subject: subject,
  html: HTML
}
  , function (err, responseStatus) {
      if(responseStatus)
    console.log("checking dta", responseStatus.message);
    callback(err, responseStatus)
  });
});
}

আপনার কোডটিতে আপনার অবশ্যই নিরাপদ সংযোগ প্রকার যুক্ত করতে হবে।


2

আমি নোডমিলার 0.4.1 এর একটি পুরানো সংস্করণ ব্যবহার করছিলাম এবং এই সমস্যাটি ছিল। আমি 0.5.15 এ আপডেট করেছি এবং এখন সবকিছু ঠিকঠাক চলছে।

পরিবর্তনগুলি প্রতিফলিত করার জন্য প্যাকেজ.জসন সম্পাদিত

npm install

3
এই ক্ষেত্রে এনপিএম আপডেট করা ভাল । আপনার সম্পর্কে কিভাবে আরো জানতে চান npm আপডেট এবং ইনস্টল npm বিভিন্ন - - তারপর দয়া করে এই উত্তর দেখার stackoverflow.com/questions/12478679/...
এন্থনি Akentiev

2

এইগুলিতে উপস্থিত হোন: 1- আপনি আপনার ক্লায়েন্ট ব্রাউজারটি পুনরায় চালু করার আগে নিম্ন স্তরের ইমেলগুলির জন্য জিমেইল প্রমাণীকরণ গ্রহণ করবে না 2- আপনি যদি নোডমিলার সহ ইমেল প্রেরণ করতে চান এবং আপনি সেখানে xouath2 প্রোটোকল ব্যবহার করতে চান তবে আপনাকে নিরাপদ সংযোগ হিসাবে লিখতে হবে: নীচের মত মিথ্যা

const routes = require('express').Router();
var nodemailer = require('nodemailer');
var smtpTransport = require('nodemailer-smtp-transport');



routes.get('/test', (req, res) => {
  res.status(200).json({ message: 'test!' });
});

routes.post('/Email', (req, res) =>{

    var smtpTransport = nodemailer.createTransport({
        host: "smtp.gmail.com",
        secureConnection: false,
        port: 587,
        requiresAuth: true,
        domains: ["gmail.com", "googlemail.com"],
        auth: {
            user: "your gmail account", 
            pass: "your password*"
        }
});  

  var mailOptions = {
      from: 'from@gmail.com',
      to:'to@gmail.com',
      subject: req.body.subject,
      //text: req.body.content,
      html: '<p>'+req.body.content+' </p>'
  };

  smtpTransport.sendMail(mailOptions, (error, info) => {
    if (error) {
        return console.log('Error while sending mail: ' + error);
    } else {
        console.log('Message sent: %s', info.messageId);
    }
    smtpTransport.close();
});  

})

module.exports = routes;

smtpTransport দুবার ব্যবহৃত হয়, কোনটি কোনটি?
বিরানচি

রিলে এর স্পষ্টরূপে প্রথমটি হ'ল এইচটিপি ট্রান্সপোর্টের সেটিংস তৈরি এবং সেকেন্ডটি মেল প্রেরণের জন্য এই সেটিংসটি আজকাল ফায়ারবেসে পুরোপুরি কাজ করছে
হামিত ইলডিরিম

2

প্রথমে নোডমিলার ইনস্টল করুন

npm install nodemailer  --save

জেএস ফাইলটিতে আমদানি করুন

const nodemailer = require("nodemailer");

const smtpTransport = nodemailer.createTransport({
    service: "Gmail",
    auth: {
        user: "example@gmail.com",
        pass: "password"
    },
    tls: {
        rejectUnauthorized: false
    }
});






 const mailOptions = {
        from: "example@gmail.com",
        to: sending@gmail.com,
        subject: "Welcome to ",
        text: 'hai send from me'.
    };


    smtpTransport.sendMail(mailOptions, function (error, response) {
        if (error) {
            console.log(error);
        }
        else {
            console.log("mail sent");
        }
    });

আমার আবেদনে কাজ করছি

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.