node.js - 如何在nodejs服务器代码中使用Mailgun以html形式将文件发送到邮件?
问题描述
我正在通过 HTML 表单收集信息并附加文件,并在 Mailgun 的帮助下将其发送到邮件中。我想通过表单手动附加文件。附加到表格的文件已发送到邮件。我坚持这一点。任何人都可以帮助我。
这是我的 html 文件
<div class="form-group">
<label for="district"> District</label>
<select id="output" onchange="random_function1()" class="form-control" placeholder="Your District..." >
</select>
</div>
<div class="form-group">
<label for="messege"> Subject of Correspondence</label>
<input type="text" class="form-control" id="messege" name="messege" placeholder="Your suject of contact..." required maxlength="150">
</div>
<div class="form-group">
<label for="attachments"> Document Upload:</label>
<input type="file" class="form-control" id="attachments" name="attachments" required>
</div>
<div class="form-group">
<label for="number"> Enter Mobile Number</label>
<input type="number" class="form-control" id="number" name="number" placeholder="Enter Your Mobile number here..." required maxlength="50">
</div>
<div class="form-group">
<label for="email"> Enter Your E-Mail Id</label>
<input type="email" class="form-control" id="email" name="email" placeholder="Enter Your Email Address here..." required maxlength="50">
</div>
<button type="submit" value="submit" class="btn btn-lg btn-success pull-right" id="btnContactUs">Submit</button>
</form>
</div>
</div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$("form").on("submit", e => {
e.preventDefault();
const member = $("#member").val().trim();
const designation = $("#designation").val().trim();
const input = $("#input").val().trim();
const output = $("#output").val().trim();
const messege = $("#messege").val().trim();
const attachments = $("#attachments").val().trim();
const number = $("#number").val().trim();
const email = $("#email").val().trim();
const data = {
member,
designation,
input,
output,
messege,
attachments,
email,
number
};
$.post("/email", data)
.then(() => {
window.location.href = "/email/sent";
})
.catch(() => {
window.location.href = "/error";
});
});
</script>
</body>
</html>
这是我的节点服务器代码
const nodemailer = require('nodemailer');
const mailGun = require('nodemailer-mailgun-transport');
const auth = {
auth: {
api_key: process.env.API_KEY ||
domain: process.env.DOMAIN ||
}
};
const transporter = nodemailer.createTransport(mailGun(auth));
const sendMail = ( email, member, designation, input, output, attachment, messege, number) => {
const mailOptions = {
from: email,
to: 'test@gmail.com',
subject: 'help',
text: 'For contact use only. Name:'+member+' Designation:'+designation+' State:'+input+' District:'+output+' Messege:'+messege+' Number:'+number
};
transporter.sendMail(mailOptions, function (err, data) {
if (err) {
return (err, null);
}
return (err, data);
});
}
module.exports = sendMail;
解决方案
推荐阅读
- dataframe - ValueError:从传递的值中推断出的频率 None 不符合传递的频率 H
- statistics - 关于学生 t 检验,组合标准差的正确公式是什么?
- javascript - 使用moment.js知道时区时如何获取偏移时间?
- php - simplesamlphp 随机会话到期
- python - 如何将文件编码为 Synology vsmeta?
- python - 删除使用 Selenium 抓取时返回的部分字符串
- node.js - 将 Sequelize 迁移到 TypeORM
- python - 如何在发送帖子请求时更改代理?
- html - 从值动画到另一个值并返回重复 Aframe
- ruby-on-rails - 引用特定的 paper_trail 版本