summaryrefslogtreecommitdiff
path: root/src/services/send-email.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/services/send-email.ts')
-rw-r--r--src/services/send-email.ts123
1 files changed, 0 insertions, 123 deletions
diff --git a/src/services/send-email.ts b/src/services/send-email.ts
deleted file mode 100644
index d24168ec46..0000000000
--- a/src/services/send-email.ts
+++ /dev/null
@@ -1,123 +0,0 @@
-import * as nodemailer from 'nodemailer';
-import { fetchMeta } from '@/misc/fetch-meta';
-import Logger from './logger';
-import config from '@/config/index';
-
-export const logger = new Logger('email');
-
-export async function sendEmail(to: string, subject: string, html: string, text: string) {
- const meta = await fetchMeta(true);
-
- const iconUrl = `${config.url}/static-assets/mi-white.png`;
- const emailSettingUrl = `${config.url}/settings/email`;
-
- const enableAuth = meta.smtpUser != null && meta.smtpUser !== '';
-
- const transporter = nodemailer.createTransport({
- host: meta.smtpHost,
- port: meta.smtpPort,
- secure: meta.smtpSecure,
- ignoreTLS: !enableAuth,
- proxy: config.proxySmtp,
- auth: enableAuth ? {
- user: meta.smtpUser,
- pass: meta.smtpPass
- } : undefined
- } as any);
-
- try {
- // TODO: htmlサニタイズ
- const info = await transporter.sendMail({
- from: meta.email!,
- to: to,
- subject: subject,
- text: text,
- html: `<!doctype html>
- <html>
- <head>
- <meta charset="utf-8">
- <title>${ subject }</title>
- <style>
- html {
- background: #eee;
- }
-
- body {
- padding: 16px;
- margin: 0;
- font-family: sans-serif;
- font-size: 14px;
- }
-
- a {
- text-decoration: none;
- color: #86b300;
- }
- a:hover {
- text-decoration: underline;
- }
-
- main {
- max-width: 500px;
- margin: 0 auto;
- background: #fff;
- color: #555;
- }
- main > header {
- padding: 32px;
- background: #86b300;
- }
- main > header > img {
- max-width: 128px;
- max-height: 28px;
- vertical-align: bottom;
- }
- main > article {
- padding: 32px;
- }
- main > article > h1 {
- margin: 0 0 1em 0;
- }
- main > footer {
- padding: 32px;
- border-top: solid 1px #eee;
- }
-
- nav {
- box-sizing: border-box;
- max-width: 500px;
- margin: 16px auto 0 auto;
- padding: 0 32px;
- }
- nav > a {
- color: #888;
- }
- </style>
- </head>
- <body>
- <main>
- <header>
- <img src="${ meta.logoImageUrl || meta.iconUrl || iconUrl }"/>
- </header>
- <article>
- <h1>${ subject }</h1>
- <div>${ html }</div>
- </article>
- <footer>
- <a href="${ emailSettingUrl }">${ 'Email setting' }</a>
- </footer>
- </main>
- <nav>
- <a href="${ config.url }">${ config.host }</a>
- </nav>
- </body>
- </html>
- `
- });
-
- logger.info('Message sent: %s', info.messageId);
- } catch (e) {
- logger.error(e);
- throw e;
- }
-}