小编Dav*_*son的帖子

用于Office 365直接发送的nodemailer 2.x配置

我正在使用nodemailer v2.4.2和node.js v4.4.7,我想通过我的Office 365 SMTP邮件服务器从我的服务器发送电子邮件.我正在使用带有此配置的smtpTransport v2.5.0:

var transporter = nodemailer.createTransport(smtpTransport({
  host: 'smtp.office365.com',
  port: 25, // have tried 465
  secureConnection: secure,
  auth: {
    user: username,
    pass: password
  },
  tls: {
    rejectUnauthorized: false // don't verify certificates
  },
  ignoreTLS: false // don't turn off STARTTLS support
}));
Run Code Online (Sandbox Code Playgroud)

我已经试过指定authMethod的LOGIN和PLAIN,但没有任何区别.当我尝试发送电子邮件时出现错误:

[Error: Invalid login: 504 5.7.4 Unrecognized authentication type]
code: 'EAUTH',
response: '504 5.7.4 Unrecognized authentication type',
responseCode: 504
Run Code Online (Sandbox Code Playgroud)

有没有人知道Office 365预期的授权类型以及我是否需要在nodemailer设置中指定任何不同的设置?

office365 nodemailer

5
推荐指数
1
解决办法
9490
查看次数

underscore.js .keys和.omit没有按预期工作

我正在运行MongoDB,通过Mongoose访问来存储用户记录.我也在服务器上有下划线.我有一个RESTful API,其路由从数据库返回一个集合(对象数组).我想将完整集合返回给客户端,但是从每个对象中删除密码元素,以便不会将其发送到客户端.在任何人说什么之前,我会使用bcrypt在最终版本中加盐和哈希密码:)

今天我在数据库中只有一个条目,用户'管理员'.这是我路线中的代码:

app.get('/users', function(req, res) {
  User.find().sort({'userName': 'ascending'}).exec(function(err, data) {
    _.each(data, function (element, index, list) {
      console.log('userName=' + element.userName);
      console.log('password=' + element.password);
      delete element.password;
      console.log('keys: ' + _.keys(element));
      console.log('password=' + element.password);
      console.log(_.omit(element, 'password'));
    });
    res.json(data);
  });
});
Run Code Online (Sandbox Code Playgroud)

我收到的回复信息是:

[{"_id":"54058e6eb53dd60730295f59","modifiedOn":"2014-09-01T15:19:10.012Z",
"userName":"administrator","password":"stackoverflow","role":"administrator",
"__v":0,"createdBy":"54058e6eb53dd60730295f59","createdOn":"2014-09-01T15:19:10.004Z",
"previousLogins":[],"accountIsLocked":false,"loginAttempts":0}]
Run Code Online (Sandbox Code Playgroud)

我们没问题,因为res.json(data)声明只是将原始数据发送data回浏览器 - 这不是问题.问题是delete(以及如果我使用的话.omit)似乎不适合我的收藏!正如您所看到的那样,有许多console.log用于调试的内容,以下是输出内容:

userName=administrator
password=stackoverflow
keys: $__,isNew,errors,_maxListeners,_doc,_pres,_posts,save,_events
password=stackoverflow
{ _id: 54058e6eb53dd60730295f59,
  modifiedOn: Mon Sep 01 2014 19:19:10 GMT+0400 (GST),
  userName: 'administrator',
  password: 'stackoverflow',
  role: 'administrator', …
Run Code Online (Sandbox Code Playgroud)

javascript object mongoose underscore.js

3
推荐指数
1
解决办法
3458
查看次数