基于node的imap接受163邮箱报错的解决办法
2024-10-05 06:51:21
NO SELECT Unsafe Login Please contact kefu@188.com for help 、node imap 、163
12384
在使用163邮箱开发,获取邮箱右键内容时,提示:xm002 NO SELECT Unsafe Login. Please contact kefu@188.com for help。
如果未登录邮箱进行授权第三方登录权限的话,会受到一封阻止邮件。
imap连接提示Unsafe Login,被阻止的收信行为。
但是网络给的解决方法2014年就在用而且已经过时了。
正确的添加id的方法只有java代码的。示例在这
那么node imap需要接受163邮箱怎么办呢?
imap是基于RFC 2971 协议,我们可以从中看出是需要一个id的信息。
ID ("name" "sodr" "version" "19.34" "vendor" "Pink Floyd Music Limited") 所以在node imap源码中 我们需要在发送user和password之后接着发送一个id的字符串就可以正常接收邮件了
下面是我们基于imap优化的一个模块,可以使用npm安装它
npm i imap-mkl
之后的使用方式和以前一样,163邮箱需要注意的是新增了一个id字段
var imap = new Imap({ user: 'mygmailname@163.com', password: 'mygmailpassword', host: 'imap.163.com', id:{ name: 'myemail', version: '1.0.0', vendor: "myclient", "support-email": config.user, }, port: 993, tls: true });