在我的node.js服务器上设置nodemailer有一个很大的问题。我在网上发现的每一件事都试过了,但都没有用。唯一容易设置的就是gmail服务。但不幸的是我不能用那个。
当secure设置为true时,我得到一个错误版本代码的原因。
[Error: 22468:error:1408F10B:SSL routines:ssl3_get_record:wrong version number:c:\ws\deps\openssl\openssl\ssl\record\ssl3_record.c:332:
] {
library: 'SSL routines',
function: 'ssl3_get_record',
reason: 'wrong version number',
code: 'ESOCKET',
command: 'CONN'
}但是,当我试图将secure设置为false时,就会得到一个无效的问候语错误。
Error: Invalid greeting. response=* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA ACL ACL2=UNION STARTTLS] Courier-IMAP ready. Copyright 1998-2016 Double Precision, Inc. See COPYING for distribution information.: * OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA ACL ACL2=UNION STARTTLS] Courier-IMAP ready. Copyright 1998-2016 Double Precision, Inc. See COPYING for distribution information.
at SMTPConnection._actionGreeting (C:\Users\Motiondata\Documents\repos\rmn_app\server\rmn_server\node_modules\nodemailer\lib\smtp-connection\index.js:1189:27)
at SMTPConnection._processResponse (C:\Users\Motiondata\Documents\repos\rmn_app\server\rmn_server\node_modules\nodemailer\lib\smtp-connection\index.js:932:20)
at SMTPConnection._onData (C:\Users\Motiondata\Documents\repos\rmn_app\server\rmn_server\node_modules\nodemailer\lib\smtp-connection\index.js:739:14)
at Socket.SMTPConnection._onSocketData (C:\Users\Motiondata\Documents\repos\rmn_app\server\rmn_server\node_modules\nodemailer\lib\smtp-connection\index.js:189:44)
at Socket.emit (events.js:315:20)
at addChunk (_stream_readable.js:309:12)
at readableAddChunk (_stream_readable.js:284:9)
at Socket.Readable.push (_stream_readable.js:223:10)
at TCP.onStreamRead (internal/stream_base_commons.js:188:23) {
code: 'EPROTOCOL',
response: '* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA ACL ACL2=UNION STARTTLS] Courier-IMAP ready. Copyright 1998-2016 Double Precision, Inc. See COPYING for distribution information.',
command: 'CONN'
}我的代码如下:
const transporter = nodemailer.createTransport({
host: process.env.MAIL_HOST, // mx.example.com
port: process.env.MAIL_PORT, // 143
secure: true,
auth: {
user: process.env.MAIL_ADDRESS,
pass: process.env.MAIL_PWD
}
})我已经检查了上千次了,他们绝对不是问题所在。
希望有人能帮我。提前谢谢。
发布于 2021-02-22 14:34:22
提到这里提到的这个问题:https://github.com/andris9/Nodemailer/issues/165
查看这是否有帮助,添加tls.ciphers选项以使用SSLv3
const transport = nodemailer.createTransport({
host: process.env.MAIL_HOST, // mx.example.com
port: process.env.MAIL_PORT, // 143
secureConnection: false, // TLS requires secureConnection to be false
auth: {
user: process.env.MAIL_ADDRESS,
pass: process.env.MAIL_PWD
},
tls: {
ciphers:'SSLv3'
}
});对于Outlook365,这应该是可行的:
service: "Outlook365",
auth: {
user: '[YOUR_O365_EMAIL]',
pass: '[YOUR_O365_PASSWORD]'
}, 请参阅此处:https://stackoverflow.com/a/37725123/9360885
如果您使用的是HotMail,那么删除host和port,然后添加service: "hotmail"。
发布于 2021-06-07 20:00:26
使用
secure: false, // true for 465, false for other ports
nodemailer文档中的示例:
let transporter = nodemailer.createTransport({
host: 'smtp.ethereal.email',
port: 587,
secure: false, // true for 465, false for other ports
auth: {
user: account.user, // generated ethereal user
pass: account.pass // generated ethereal password
}
});来源:检验员示例
发布于 2021-10-19 14:38:38
我在Gmail中使用了端口465,这起作用了。得到了“错误的版本号”错误与587。下面的示例用于云函数中的GCP服务帐户。
const transporter = nodemailer.createTransport({
host: "smtp.gmail.com",
port: 465,
secure: true,
auth: {
type: "OAuth2",
user: process.env.GMAIL_ADDRESS,
serviceClient: process.env.CLIENT_ID,
privateKey: process.env.PRIVATE_KEY.replace(/\\n/g, "\n"),
},
});https://stackoverflow.com/questions/66317125
复制相似问题