Skip to content

Commit e9f4aad

Browse files
authored
fix: server crash when send email failed (#606)
Signed-off-by: Bob Du <[email protected]>
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+
await sendMail(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+
await sendMail(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+
await sendMail(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+
await sendMail(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)