使用nodemailer发送信件时,会出现错误

问题描述

我正在使用nodemailer通过SMTP从联系表单发送邮件发送邮件时出现错误

enter image description here

如何解决此问题并设置发送带有字母的文件

在服务器上处理发布请求:

const express = require('express')
const nodemailer = require('nodemailer')
const bodyParser = require('body-parser')
const app = express()

app.use(bodyParser.json())
app.use(bodyParser.urlencoded({ extended: true}))
app.use(express.json())

app.post('/',async (req,res) => {
  name = req.body.name,telephone = req.body.telephone,url = req.headers.referer,file = req.body.image
  sendMail(name,telephone,url,file)
  await res.status(200).json('Сообщение отправлено')
})

module.exports = {
  path: '/server/api/form',handler: app  
}

const sendMail = async (name,file) => {
  let transporter = await nodemailer.createTransport({
    host: 'smtp.yandex.ru',port: 465,secure: true,auth: {
      user: '[email protected]',pass: '*****'
    },})
  transporter.sendMail({
      from: '[email protected]',to: '[email protected]',subject: 'Сообщение с сайта ***** | Вакансии',text: 'Имя: ' + name + '. Телефон: ' + telephone + '. Страница: ' + url + '. Название файла: ' + file
  })
}

如果初始化formData不是“ const formData = new FormData()”,而是“ const formData = {}”,那么我的电子邮件更有可能不会进入垃圾邮件。 提交表单上的Vue方法

  methods: {
    handleFileUpdate () {
      this.file = this.$refs.file.files[0]
    },onSubmit () {
      if (this.$v.$invalid) {
        this.$v.$touch()
        return null
      }
      const fd = new FormData()
      fd.append('image',this.file)
      fd.append('name',this.name)
      fd.append('telephone',this.telephone)
      this.$axios.post('http://localhost:3000/server/api/form',fd,{
        headers: {
          'Content-Type': 'multipart/form-data'
        }
      })
      this.successValue = true
    }
  }

上传服务器上的文件

const path = require('path')
const multer = require('multer')
const moment = require('moment')

const storage = multer.diskStorage({
  destination(req,file,cb) {
    cb(null,path.resolve(__dirname,'../..','static'))
  },filename(req,`${moment().format('DDMMYYYY-HHmmss_SSS')}-${file.originalname}`)
  }
})
const fileFilter = (req,cb) => {
  if (file.mimetype === 'image/png' || file.mimetype === 'image/jpg') {
    cb(null,true)
  } else {
    cb(null,false)
  }
}

module.exports = multer({
    storage,fileFilter,limits: {fileSize: 1024 * 1024 * 5}
})

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)