chore: 官方email服务支持发送附件

v2-dev
xiaojunnuo 2025-10-05 22:44:59 +08:00
parent 978fa54518
commit 53d276a8fc
2 changed files with 23 additions and 8 deletions

View File

@ -3,7 +3,7 @@ import { AppKey, PlusRequestService } from '@certd/plus-core';
import { cache, http, HttpRequestConfig, logger } from '@certd/basic';
import { SysInstallInfo, SysLicenseInfo, SysSettingsService } from '../../settings/index.js';
import { merge } from 'lodash-es';
import fs from 'fs';
@Provide("plusService")
@Scope(ScopeEnum.Request, { allowDowngrade: true })
export class PlusService {
@ -85,12 +85,31 @@ export class PlusService {
async sendEmail(email: any) {
const plusRequestService = await this.getPlusRequestService();
let attachments = email.attachments || [];
if (attachments.length > 0) {
const newAttachments: any[] = [];
attachments.forEach((item: any) => {
const name = item.filename || item.path.split('/').pop();
const body = item.content || fs.readFileSync(item.path);
const bodyBase64 = Buffer.from(body).toString('base64');
item = {
name,
body: bodyBase64,
};
newAttachments.push(item);
});
attachments = newAttachments;
}
await plusRequestService.request({
url: '/activation/emailSend',
data: {
subject: email.subject,
text: email.content,
to: email.receivers,
text: email.content,
html: email.html,
attachments,
},
});
}

View File

@ -25,10 +25,6 @@ export default ({ command, mode }) => {
// if (mode.startsWith("dev")) {
// base = "./";
// }
let proxyTarget: string = "https://127.0.0.1:7002";
if (mode === "remote") {
proxyTarget = "https://yfy.docmirror.cn:7002";
}
return {
base: base,
plugins: [
@ -86,14 +82,14 @@ export default ({ command, mode }) => {
},
server: {
host: "0.0.0.0",
port: 13008,
port: 3008,
fs: devServerFs,
allowedHosts: ["localhost", "127.0.0.1", "yfy.docmirror.cn"],
proxy: {
// with options
"/api": {
//配套后端 https://github.com/fast-crud/fs-server-js
target: proxyTarget,
target: "https://127.0.0.1:7002",
//忽略证书
agent: new https.Agent({ rejectUnauthorized: false }),
},