summaryrefslogtreecommitdiff
path: root/src/services
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2019-05-23 23:46:10 +0900
committersyuilo <syuilotan@yahoo.co.jp>2019-05-23 23:46:10 +0900
commitdda7b0c80e1785e1979b088a32d7b47a763bb6a3 (patch)
tree1128586da7a7b4d2d8ff75825d5a89b7f8e18ec6 /src/services
parentResolve #4967 (diff)
downloadsharkey-dda7b0c80e1785e1979b088a32d7b47a763bb6a3.tar.gz
sharkey-dda7b0c80e1785e1979b088a32d7b47a763bb6a3.tar.bz2
sharkey-dda7b0c80e1785e1979b088a32d7b47a763bb6a3.zip
Refactor
Diffstat (limited to 'src/services')
-rw-r--r--src/services/send-email.ts36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/services/send-email.ts b/src/services/send-email.ts
new file mode 100644
index 0000000000..8818c5fcde
--- /dev/null
+++ b/src/services/send-email.ts
@@ -0,0 +1,36 @@
+import * as nodemailer from 'nodemailer';
+import { fetchMeta } from '../misc/fetch-meta';
+import Logger from './logger';
+
+export const logger = new Logger('email');
+
+export async function sendEmail(to: string, subject: string, text: string) {
+ const meta = await fetchMeta(true);
+
+ const enableAuth = meta.smtpUser != null && meta.smtpUser !== '';
+
+ const transporter = nodemailer.createTransport({
+ host: meta.smtpHost,
+ port: meta.smtpPort,
+ secure: meta.smtpSecure,
+ ignoreTLS: !enableAuth,
+ auth: enableAuth ? {
+ user: meta.smtpUser,
+ pass: meta.smtpPass
+ } : undefined
+ } as any);
+
+ try {
+ const info = await transporter.sendMail({
+ from: meta.email!,
+ to: to,
+ subject: subject || 'Misskey',
+ text: text
+ });
+
+ logger.info('Message sent: %s', info.messageId);
+ } catch (e) {
+ logger.error(e);
+ throw e;
+ }
+}