email.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. const nodemailer = require('nodemailer');
  2. const { tokenStore } = require('./token');
  3. const config = require('../config');
  4. const { md2html } = require('./utils');
  5. async function pushEmailMessage(userPrefix, message) {
  6. let user = tokenStore.get(userPrefix);
  7. if (!user) {
  8. return {
  9. success: false,
  10. message: `不存在的前缀:${userPrefix},请注意大小写`,
  11. };
  12. }
  13. let transporter = nodemailer.createTransport({
  14. host: user.smtpServer,
  15. secure: true,
  16. auth: {
  17. user: user.smtpUser,
  18. pass: user.smtpPass,
  19. },
  20. });
  21. let targetEmail = user.email;
  22. if (message.email) {
  23. targetEmail = message.email;
  24. }
  25. try {
  26. await transporter.sendMail({
  27. from: `"消息推送服务" <${user.smtpUser}>`,
  28. to: targetEmail,
  29. subject: message.description,
  30. text: message.content,
  31. html: md2html(message.content),
  32. });
  33. return {
  34. success: true,
  35. message: 'ok',
  36. };
  37. } catch (e) {
  38. console.error(e);
  39. return {
  40. success: false,
  41. message: e.message,
  42. };
  43. }
  44. }
  45. module.exports = {
  46. pushEmailMessage,
  47. };