From c38a1a77d4670289a21834de25f48dfb9110ea85 Mon Sep 17 00:00:00 2001 From: nyaruta Date: Mon, 24 Mar 2025 09:03:07 +0800 Subject: [PATCH] Init --- apps/core/src/modules/comment/comment.service.ts | 12 ++++++------ apps/core/src/modules/configs/configs.default.ts | 1 + apps/core/src/modules/configs/configs.dto.ts | 10 +++++++--- apps/core/src/modules/link/link.service.ts | 12 ++++++------ apps/core/src/modules/subscribe/subscribe.service.ts | 6 +++--- .../src/processors/helper/helper.email.service.ts | 2 +- 6 files changed, 24 insertions(+), 19 deletions(-) diff --git a/apps/core/src/modules/comment/comment.service.ts b/apps/core/src/modules/comment/comment.service.ts index 9305e1c0c7c..d2594d5ee19 100644 --- a/apps/core/src/modules/comment/comment.service.ts +++ b/apps/core/src/modules/comment/comment.service.ts @@ -525,9 +525,9 @@ export class CommentService implements OnModuleInit { const location = `${result.countryName || ''}${ result.regionName && result.regionName !== result.cityName - ? `${result.regionName}` + ? String(result.regionName) : '' - }${result.cityName ? `${result.cityName}` : ''}` || undefined + }${result.cityName ? String(result.cityName) : ''}` || undefined if (location) await this.commentModel.updateOne({ _id: id }, { location }) } @@ -574,13 +574,13 @@ export class CommentService implements OnModuleInit { type: CommentReplyMailType }) { const { seo, mailOptions } = await this.configsService.waitForConfigReady() - const { user } = mailOptions - const from = `"${seo.title || 'Mx Space'}" <${user}>` + const { from, user } = mailOptions + const sendfrom = `"${seo.title || 'Mx Space'}" <${from || user}>` source.ip ??= '' if (type === CommentReplyMailType.Guest) { const options = { - from, + from: sendfrom, subject: `[${seo.title || 'Mx Space'}] 主人给你了新的回复呐`, to, html: render( @@ -598,7 +598,7 @@ export class CommentService implements OnModuleInit { await this.mailService.send(options) } else { const options = { - from, + from: sendfrom, subject: `[${seo.title || 'Mx Space'}] 有新回复了耶~`, to, html: render( diff --git a/apps/core/src/modules/configs/configs.default.ts b/apps/core/src/modules/configs/configs.default.ts index 43dafddedc1..ceb4b2c1cfa 100644 --- a/apps/core/src/modules/configs/configs.default.ts +++ b/apps/core/src/modules/configs/configs.default.ts @@ -19,6 +19,7 @@ export const generateDefaultConfig: () => IConfig = () => ({ user: '', pass: '', + from: '', options: { host: '', port: 465, diff --git a/apps/core/src/modules/configs/configs.dto.ts b/apps/core/src/modules/configs/configs.dto.ts index c73ec54213d..78e519d484f 100644 --- a/apps/core/src/modules/configs/configs.dto.ts +++ b/apps/core/src/modules/configs/configs.dto.ts @@ -82,11 +82,11 @@ class MailOption { @IsInt() @Transform(({ value: val }) => Number.parseInt(val)) @IsOptional() - @JSONSchemaNumberField('发件邮箱端口', halfFieldOption) + @JSONSchemaNumberField('SMTP 端口', halfFieldOption) port: number @IsUrl({ require_protocol: false }) @IsOptional() - @JSONSchemaHalfGirdPlainField('发件邮箱 host') + @JSONSchemaHalfGirdPlainField('SMTP 主机') host: string @IsBoolean() @IsOptional() @@ -102,11 +102,15 @@ export class MailOptionsDto { @IsEmail() @IsOptional() @JSONSchemaHalfGirdPlainField('发件邮箱地址') + from: string + @IsString() + @IsOptional() + @JSONSchemaHalfGirdPlainField('SMTP 用户名') user: string @IsString() @IsNotEmpty() @IsOptional() - @JSONSchemaPasswordField('发件邮箱密码', halfFieldOption) + @JSONSchemaPasswordField('SMTP 密码', halfFieldOption) @SecretField pass: string diff --git a/apps/core/src/modules/link/link.service.ts b/apps/core/src/modules/link/link.service.ts index 35b98345bbb..9db3e08a190 100644 --- a/apps/core/src/modules/link/link.service.ts +++ b/apps/core/src/modules/link/link.service.ts @@ -195,10 +195,10 @@ export class LinkService { template: LinkApplyEmailType }) { const { seo, mailOptions } = await this.configsService.waitForConfigReady() - const { user } = mailOptions - const from = `"${seo.title || 'Mx Space'}" <${user}>` + const { from, user } = mailOptions + const sendfrom = `"${seo.title || 'Mx Space'}" <${from || user}>` await this.emailService.getInstance().sendMail({ - from, + from: sendfrom, to, subject: template === LinkApplyEmailType.ToMaster @@ -278,10 +278,10 @@ export class LinkService { return } - const { user } = mailOptions - const from = `"${seo.title || 'Mx Space'}" <${user}>` + const { from, user } = mailOptions + const sendfrom = `"${seo.title || 'Mx Space'}" <${from || user}>` await this.emailService.getInstance().sendMail({ - from, + from: sendfrom, to: doc.email, subject: `嘿!~, 主人已处理你的友链申请!~`, text: `申请结果:${LinkStateMap[state]}\n原因:${reason}`, diff --git a/apps/core/src/modules/subscribe/subscribe.service.ts b/apps/core/src/modules/subscribe/subscribe.service.ts index 179015d5134..53b712a06c6 100644 --- a/apps/core/src/modules/subscribe/subscribe.service.ts +++ b/apps/core/src/modules/subscribe/subscribe.service.ts @@ -258,8 +258,8 @@ export class SubscribeService implements OnModuleInit, OnModuleDestroy { unsubscribeLink: string, ) { const { seo, mailOptions } = await this.configService.waitForConfigReady() - const { user } = mailOptions - const from = `"${seo.title || 'Mx Space'}" <${user}>` + const { from, user } = mailOptions + const sendfrom = `"${seo.title || 'Mx Space'}" <${from || user}>` let finalTemplate = '' const cacheKey = 'template' @@ -275,7 +275,7 @@ export class SubscribeService implements OnModuleInit, OnModuleDestroy { } const options: Mail.Options = { - from, + from: sendfrom, ...{ subject: `[${seo.title || 'Mx Space'}] 发布了新内容~`, to: email, diff --git a/apps/core/src/processors/helper/helper.email.service.ts b/apps/core/src/processors/helper/helper.email.service.ts index e16237b2c65..1ebd5af7225 100644 --- a/apps/core/src/processors/helper/helper.email.service.ts +++ b/apps/core/src/processors/helper/helper.email.service.ts @@ -159,7 +159,7 @@ export class EmailService implements OnModuleInit, OnModuleDestroy { const master = await this.userService.getMaster() const mailOptions = await this.configsService.get('mailOptions') return this.instance.sendMail({ - from: `"Mx Space" <${mailOptions.user}>`, + from: `"Mx Space" <${mailOptions.from || mailOptions.user}>`, to: master.mail, subject: '测试邮件', text: '这是一封测试邮件',