[英]Nodemailer: Connection Timeout error when password string contains '#'
我在 nodejs 中有一個應用程序,它使用 nodemailer 發送電子郵件。 一切正常,除非密碼字符串中包含“#”。
下面是我的代碼
var secure = config.secure ? "smtps":"smtp";
var conURL = secure+"://"+config.user+":"+config.pass+"@"+config.host+"/?pool=false";
try {
const transport = nodemailer.createTransport(conURL);
// verify connection configuration
transport.verify(function(error, success) {
if (error) {
console.log(error.message) // Error : Connection Timeout
}
});
當密碼包含“#”字符時,出現連接超時錯誤。 我已經用@、!、$ 等進行了測試,一切正常。
有人可以幫助解決這個問題嗎?
您可能必須對 URI 進行編碼
所以,我想這樣的事情應該可以解決問題
secure+"://"+config.user+":"+encodeURIComponent(config.pass)+"@"+config.host+"/?pool=false"
編輯:嘗試使用配置對象而不是像這樣的 URI
const config = {
pool: false,
host: config.host,
secure: config.secure,
auth: {
user: config.user,
pass: config.pass
}
};
try {
const transport = nodemailer.createTransport(conURL);
// verify connection configuration
transport.verify(function(error, success) {
if (error) {
console.log(error.message) // Error : Connection Timeout
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.