簡體   English   中英

無法從emailjs和smtp服務器獲取電子郵件-Node.js

[英]Not getting emails from emailjs and smtp-server - Nodejs

我正在嘗試構建一個在觸發某些事件時發送電子郵件的應用程序。

我沒有收到任何錯誤,但是沒有收到任何電子郵件到我的收件箱。

這是代碼:

SMTP:

var SMTPServer = require('smtp-server').SMTPServer;
var server = new SMTPServer({
    secure: false, authOptional: true
});
server.listen(465);

emailjs:

var email = require('emailjs');

var emailServer = email.server.connect({
    host: 'localhost',
    port: 465,
    ssl: false
});

emailServer.send({
    text: 'Hey howdy',
    from: 'NodeJS',
    to: 'Wilson <person@gmail.com>',
    cc: '',
    subject: 'Greetings'
}, function (err, message) {
    console.log(err || message);
});

我在控制台上看到的輸出是:

{ attachments: [],
  alternative: null,
  header:
   { 'message-id': '<1470995427701.0.2864@DESKTOP-M85CNRC>',
     date: 'Fri, 12 Aug 2016 12:50:27 +0300',
     from: '=?UTF-8?Q?NodeJS?= <>',
     to: '=?UTF-8?Q?Wilson?= <person@gmail.com>',
     cc: '',
     subject: '=?UTF-8?Q?Greetings?=' },
  content: 'text/plain; charset=utf-8',
  text: 'Hey howdy' }

關於缺少的東西有什么想法嗎?

謝謝

我正在使用nodemailer-smtp-transport並且對我來說工作正常,以下是我通過郵件發送功能中的配置。 希望這會有所幫助。

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

//configuration
var transporter = nodemailer.createTransport(smtpTransport ({
        auth: {
            user: user,   //email of sender
            pass: pass    //password of sender
        },
        host: host,    //my email host
        secureConnection: true,
        port: 587,
        tls: {
            rejectUnauthorized: false
        },
    }));    

    var mailOptions = {
        from: user,
        to: to,
        subject: subject,
        text: text
    }

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

在emailjs文件宿主中不能為localhost,它應該類似於: smtp.your-email.com

var server  = email.server.connect({
   user:    "username", 
   password:"password", 
   host:    "smtp.your-email.com", 
   ssl:     true
});

我使用對測試不太重要的Gmail帳戶代替模塊smtp-server。

首先 :如Gmail文檔所述,需要激活使用不太安全的應用程序,后果自負。

https://myaccount.google.com/u/2/lesssecureapps?pageId=none

后:

var email   = require("emailjs");
var server  = email.server.connect({
   user:    "YOUR_ACCOUNT@gmail.com", 
   password:"YOUR_PASSWORD", 
   host:    "smtp.gmail.com",
   ssl:     true
});

server.send({
   text:    "Hello world", 
   from:    "YOUR_NAME <YOUR_ACCOUNT@gmail.com>", 
   to:      "FRIEND_NAME <FRIEND_ACCOUNT@gmail.com>",
   subject: "Hello"
}, function(err, message) { console.log(err || message); });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM