Skip to content

Commit 4824179

Browse files
authored
feat: support standalone mail smtp from field (#531)
* feat: support standalone mail smtp from field Signed-off-by: Bob Du <i@bobdu.cc> * chore: bump nodemailer Signed-off-by: Bob Du <i@bobdu.cc> --------- Signed-off-by: Bob Du <i@bobdu.cc>
1 parent aaae763 commit 4824179

File tree

9 files changed

+36
-14
lines changed

9 files changed

+36
-14
lines changed

service/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
"mongodb": "^5.9.2",
4444
"multer": "1.4.5-lts.1",
4545
"node-fetch": "^3.3.0",
46-
"nodemailer": "^6.9.9",
46+
"nodemailer": "^6.9.13",
4747
"request-ip": "^3.3.0",
4848
"socks-proxy-agent": "^7.0.0",
4949
"speakeasy": "^2.0.0",

service/pnpm-lock.yaml

Lines changed: 17 additions & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

service/src/storage/config.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,10 @@ export async function getOriginConfig() {
5454
!Number.isNaN(+process.env.SMTP_PORT) ? +process.env.SMTP_PORT : 465,
5555
process.env.SMTP_TSL === 'true',
5656
process.env.SMTP_USERNAME,
57-
process.env.SMTP_PASSWORD))
57+
process.env.SMTP_PASSWORD,
58+
process.env.SMTP_FROM || process.env.SMTP_USERNAME,
59+
),
60+
)
5861
}
5962
else {
6063
if (config.siteConfig.loginEnabled === undefined)

service/src/storage/model.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,7 @@ export class MailConfig {
223223
public smtpTsl: boolean,
224224
public smtpUserName: string,
225225
public smtpPassword: string,
226+
public smtpFrom?: string,
226227
) { }
227228
}
228229

service/src/utils/mail.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ export async function sendTestMail(toMail: string, config: MailConfig) {
5959

6060
async function sendMail(toMail: string, subject: string, html: string, config: MailConfig) {
6161
const mailOptions = {
62-
from: config.smtpUserName,
62+
from: config.smtpFrom || config.smtpUserName,
6363
to: toMail,
6464
subject,
6565
html,

src/components/common/Setting/Mail.vue

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,15 @@ onMounted(() => {
105105
/>
106106
</div>
107107
</div>
108+
<div class="flex items-center space-x-4">
109+
<span class="flex-shrink-0 w-[100px]">{{ $t('setting.smtpFrom') }}</span>
110+
<div class="flex-1">
111+
<NInput
112+
:value="config && config.smtpFrom" placeholder=""
113+
@input="(val) => { if (config) config.smtpFrom = val }"
114+
/>
115+
</div>
116+
</div>
108117
<div class="flex items-center space-x-4">
109118
<span class="flex-shrink-0 w-[100px]" />
110119
<div class="flex flex-wrap items-center gap-4">

src/components/common/Setting/model.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ export class MailConfig {
4141
smtpTsl?: boolean
4242
smtpUserName?: string
4343
smtpPassword?: string
44+
smtpFrom?: string
4445
}
4546
export type TextAuditServiceProvider = 'baidu' // | 'ali'
4647

src/locales/en-US.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,7 @@ export default {
128128
smtpTsl: 'Tsl',
129129
smtpUserName: 'UserName',
130130
smtpPassword: 'Password',
131+
smtpFrom: 'From',
131132
siteTitle: 'Title',
132133
siteDomain: 'Domain',
133134
registerEnabled: 'Register Enabled',

src/locales/zh-CN.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,7 @@ export default {
128128
smtpTsl: 'Tsl',
129129
smtpUserName: '账号',
130130
smtpPassword: '密码/专用密码',
131+
smtpFrom: '发件人邮箱',
131132
siteTitle: '网站标题',
132133
siteDomain: '域名 不含/',
133134
registerEnabled: '新用户',

0 commit comments

Comments
 (0)