Email.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. const nodemailer = require('nodemailer');
  2. const config = require('../../config.json');
  3. const path = require('path');
  4. const Logger = require('../../lib/Logger');
  5. const logger = new Logger(path.join(__dirname, '../../logs/Email.log'), 'INFO');
  6. const transporter = nodemailer.createTransport({
  7. host: config.email.host,
  8. port: config.email.port,
  9. secure: config.email.secure,
  10. auth: {
  11. user: config.email.user,
  12. pass: config.email.password
  13. }
  14. })
  15. async function sendEmail(email, subject, content) {
  16. return new Promise((resolve, reject) => {
  17. const mail = {
  18. from: `Double_X考勤 <${transporter.options.auth.user}>`,
  19. to: email,
  20. subject: subject,
  21. text: content
  22. }
  23. try {
  24. transporter.sendMail(mail, (error) => {
  25. if (error) {
  26. logger.error('邮件发送失败:', error);
  27. reject(error);
  28. } else {
  29. resolve();
  30. }
  31. })
  32. } catch (error) {
  33. logger.error('邮件发送失败:', error);
  34. reject(error);
  35. }
  36. })
  37. }
  38. module.exports = sendEmail;