如何解决使用nodemailer发送信件时,会出现错误
我正在使用nodemailer通过SMTP从联系表单发送邮件。发送邮件时出现错误
如何解决此问题并设置发送带有字母的文件?
在服务器上处理发布请求:
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: 'test@test.ru',pass: '*****'
},})
transporter.sendMail({
from: 'test@test.ru',to: 'test@test.ru',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 举报,一经查实,本站将立刻删除。