Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit e9f4aad

Browse files
authored
fix: server crash when send email failed (#606)
Signed-off-by: Bob Du <i@bobdu.cc>
1 parent e64d52d commit e9f4aad

File tree

1 file changed

+27
-23
lines changed

1 file changed

+27
-23
lines changed

‎service/src/utils/mail.ts‎

Lines changed: 27 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ export async function sendVerifyMail(toMail: string, verifyUrl: string) {
1717
let mailHtml = fs.readFileSync(mailTemplatePath, 'utf8')
1818
mailHtml = mailHtml.replace(/\${VERIFY_URL}/g, verifyUrl)
1919
mailHtml = mailHtml.replace(/\${SITE_TITLE}/g, config.siteConfig.siteTitle)
20-
sendMail(toMail, `${config.siteConfig.siteTitle} 账号验证`, mailHtml, config.mailConfig)
20+
awaitsendMail(toMail, `${config.siteConfig.siteTitle} 账号验证`, mailHtml, config.mailConfig)
2121
}
2222

2323
export async function sendVerifyMailAdmin(toMail: string, verifyName: string, verifyUrl: string) {
@@ -29,7 +29,7 @@ export async function sendVerifyMailAdmin(toMail: string, verifyName: string, ve
2929
mailHtml = mailHtml.replace(/\${TO_MAIL}/g, verifyName)
3030
mailHtml = mailHtml.replace(/\${VERIFY_URL}/g, verifyUrl)
3131
mailHtml = mailHtml.replace(/\${SITE_TITLE}/g, config.siteConfig.siteTitle)
32-
sendMail(toMail, `${config.siteConfig.siteTitle} 账号申请`, mailHtml, config.mailConfig)
32+
awaitsendMail(toMail, `${config.siteConfig.siteTitle} 账号申请`, mailHtml, config.mailConfig)
3333
}
3434

3535
export async function sendResetPasswordMail(toMail: string, verifyUrl: string) {
@@ -39,7 +39,7 @@ export async function sendResetPasswordMail(toMail: string, verifyUrl: string) {
3939
let mailHtml = fs.readFileSync(mailTemplatePath, 'utf8')
4040
mailHtml = mailHtml.replace(/\${VERIFY_URL}/g, verifyUrl)
4141
mailHtml = mailHtml.replace(/\${SITE_TITLE}/g, config.siteConfig.siteTitle)
42-
sendMail(toMail, `${config.siteConfig.siteTitle} 密码重置`, mailHtml, config.mailConfig)
42+
awaitsendMail(toMail, `${config.siteConfig.siteTitle} 密码重置`, mailHtml, config.mailConfig)
4343
}
4444

4545
export async function sendNoticeMail(toMail: string) {
@@ -50,30 +50,34 @@ export async function sendNoticeMail(toMail: string) {
5050
let mailHtml = fs.readFileSync(mailTemplatePath, 'utf8')
5151
mailHtml = mailHtml.replace(/\${SITE_DOMAIN}/g, config.siteConfig.siteDomain)
5252
mailHtml = mailHtml.replace(/\${SITE_TITLE}/g, config.siteConfig.siteTitle)
53-
sendMail(toMail, `${config.siteConfig.siteTitle} 账号开通`, mailHtml, config.mailConfig)
53+
awaitsendMail(toMail, `${config.siteConfig.siteTitle} 账号开通`, mailHtml, config.mailConfig)
5454
}
5555

5656
export async function sendTestMail(toMail: string, config: MailConfig) {
57-
return sendMail(toMail, '测试邮件|Test mail', '这是一封测试邮件|This is test mail', config)
57+
await sendMail(toMail, '测试邮件|Test mail', '这是一封测试邮件|This is test mail', config)
5858
}
5959

60-
async function sendMail(toMail: string, subject: string, html: string, config: MailConfig) {
61-
const mailOptions = {
62-
from: config.smtpFrom || config.smtpUserName,
63-
to: toMail,
64-
subject,
65-
html,
66-
}
60+
async function sendMail(toMail: string, subject: string, html: string, config: MailConfig): Promise<void> {
61+
try {
62+
const mailOptions = {
63+
from: config.smtpFrom || config.smtpUserName,
64+
to: toMail,
65+
subject,
66+
html,
67+
}
6768

68-
const transporter = nodemailer.createTransport({
69-
host: config.smtpHost,
70-
port: config.smtpPort,
71-
secure: config.smtpTsl,
72-
auth: {
73-
user: config.smtpUserName,
74-
pass: config.smtpPassword,
75-
},
76-
})
77-
const info = await transporter.sendMail(mailOptions)
78-
return info.messageId
69+
const transporter = nodemailer.createTransport({
70+
host: config.smtpHost,
71+
port: config.smtpPort,
72+
secure: config.smtpTsl,
73+
auth: {
74+
user: config.smtpUserName,
75+
pass: config.smtpPassword,
76+
},
77+
})
78+
await transporter.sendMail(mailOptions)
79+
}
80+
catch (e) {
81+
globalThis.console.error('Error send email, ', e)
82+
}
7983
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /