Email.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  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. auth: {
  10. user: config.email.user,
  11. pass: config.email.password
  12. }
  13. })
  14. async function sendEmail(email, subject, content) {
  15. return new Promise((resolve, reject) => {
  16. const mail = {
  17. from: config.email.from,
  18. to: email,
  19. subject: subject,
  20. html: content
  21. }
  22. try {
  23. transporter.sendMail(mail, (error) => {
  24. if (error) {
  25. logger.error('邮件发送失败:', error);
  26. reject(error);
  27. } else {
  28. resolve();
  29. }
  30. })
  31. } catch (error) {
  32. logger.error('邮件发送失败:', error);
  33. reject(error);
  34. }
  35. })
  36. }
  37. module.exports = sendEmail;