首页 > 编程语言 >nodemailer实现发送邮件后跳转静态页面

nodemailer实现发送邮件后跳转静态页面

时间:2023-10-08 11:11:06浏览次数:32  
标签:express const nodemailer req require 跳转 email 页面

写了一个静态展示页面,并通过node.js中的nodemailer实现发送邮件服务,发送结束后跳转到其他静态页面。

点击查看代码
const express = require('express');
const nodemailer = require('nodemailer');

const app = express();
// 解析 url-encoded格式的表单数据
app.use(express.urlencoded({ extended: false }));
// 解析json格式的表单数据
app.use(express.json());
// 设置静态资源访问目录
app.use(express.static('./'))

const port = 30000;

//测试用,正式上线注释掉这个
const email_host = 'smtp.163.com';
const email_from = "[email protected]";
const email_from_psw = "XXXXXX";
const email_to = "[email protected]";


// 配置 nodemailer transporter
let transporter = nodemailer.createTransport({
    host: email_host,
    secure: true,
    auth: {
        user: email_from,
        pass: email_from_psw
    }
});

var path = require('path');

// 发送电子邮件的终点
app.post('/send-email', (req, res) => {
    var username = req.body.username
    var tel = req.body.tel
    var email = req.body.email
    var language = req.body.language

    const mailOptions = {
        from: email_from,
        to: email_to,
        // 邮件标题
        subject: req.body.subject,
        //邮件内容,以html的形式输入,在邮件中会自动解析显示
        html: `
            <p>用户名: `+username+`</p>
            <p>电话: `+tel+`</p>
            <p>邮箱: `+email+`</p>
        `,
    };

    transporter.sendMail(mailOptions, (error, info) => {
        if (error) {
            console.log(error);
            res.status(500).json({
                success: false,
                message: 'Failed to send email'
            });
        } else {
            switch (language) {
                case "jp":
                    res.sendFile('./sendSuccessful.html', { root: path.dirname(require.main.filename) });
                    break;
                case "en":
                    res.sendFile('en/sendSuccessful.html', { root: path.dirname(require.main.filename) });
                    break;
                case "cn":
                    res.sendFile('cn/sendSuccessful.html', { root: path.dirname(require.main.filename) });
                    break;
                default:
                    res.sendFile('./sendSuccessful.html', { root: path.dirname(require.main.filename) });
                    break;
            }
        }
    });
});

app.listen(port, () => {
    console.log(`Server is running on port ${port}`);
});

标签:express,const,nodemailer,req,require,跳转,email,页面
From: https://www.cnblogs.com/lxpeak/p/17748406.html

相关文章

  • ansible-playbook批量安装httpd,按主机名提供不同的index.html(如node1的index.html欢迎
    [root@ansible~]#vim/etc/ansible/hosts[webservers]10.0.0.150ansible_connection=local10.0.0.160#创建角色相关目录[root@ansiblehtml]#mkdir-pv/data/ansible/roles/httpd/{tasks,handlers,files}mkdir:createddirectory'/data/ansible'mkdir:crea......
  • htmlunit 模拟登入、点击、获取页面信息
    本文介绍了htmlunit模拟登入、点击、获取页面信息的demopublicstaticStringgetHtml(Stringurl){System.out.println("****************开始执行****************");//模拟一个浏览器@SuppressWarnings("resource")WebClientwebClien......
  • 华为云云耀云服务器L实例评测 | 3分钟搞懂如何在华为云服务器安装Nginx并配置静态访问
    文章目录一、什么是Nginx?二、申请华为云服务器三、使用XShell连接华为云服务器并安装Nginx四、FileZilla连接服务器五、Linux下安装Nginx❇️配置80端口并关闭Linux防火墙✳️测试六、配置静态html至华为云服务器并访问⚠️在华为服务器新建路径⏰使用Filezilla上传文件至华为云服务器⚡......
  • vue:登录后跳转到之前要访问的页面([email protected])
    一,安装pinialiuhongdi@lhdpc:/data/vue/responsive$npm-Sinstallpinia安装完成后查看已安装的版本:liuhongdi@lhdpc:/data/vue/[email protected]/data/vue/responsive└──[email protected]二,代码:1,store/redirect.js123456......
  • 使用Springboot实现点击名称跳转到详情页面
    终于解决出来啦!!!嘎嘎嘎嘎~~~只需要在td标签里面嵌套上a标签就能实现啦!这里主要看一下功能,页面直接使用的白板~html页面的具体代码如下(将超链接标签a的样式进行了美化):<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>主界面</title></head>......
  • 超级实用!React-Router v6实现页面级按钮权限
    大家好,我是王天~今天咱们用reac+reactRouter来实现页面级的按钮权限功能。这篇文章分三部分,实现思路、代码实现、踩坑记录。嫌啰嗦的朋友,直接拖到第二章节看代码哦。前言通常情况下,咱们为用户添加权限时,除了页面权限,还会细化到按钮级别,比如、新增、删除、查看等权限。如下效......
  • 《DjangoApp开发》第二集,创建项目骨架、主菜单页面及跳转
    2023年10月3日这节课做的事情创建项目目录对项目进行全局时间、配置创建项目骨架,配置一堆文件写主页面切换页面项目结构。当我们发现代码很长的时候就分成多个子目录菜单界面对战界面玩家玩家的技能玩家的每一个技能玩家的移动背景时间设置界......
  • 新建小程序页面
    新建小程序页面只需要在app.json->pages中新增页面的存放路径,小程序开发者工具即可帮我们自动创建对应的页面文件,如图所示:  2、修改项目的首页只需要调整app.json->pages中的前后顺序,即可修改项目的首页,小程序会把排在第一位的页面,当作项目首页进行渲染,如图所示: ......
  • destoon 列表页面增加手动选择排序方式
    在mobile/include/mall.inc.php 行60 $order=$MOD['order'];  之前增加排序方式判断如果有order参数则$order接受参数,没有就用默认  $order=$MOD['order'];  1、增加排序以后的mobileurl函数,伪静态规则  ViewCode 伪静态规则 ViewCode  2、模......
  • Odoo 页面-‘action’-官方文档解释
    1、图示总概览-动作分类窗口动作(WindowActions)------(ir.actions.act_window)网址URL动作(URLActions)------(ir.actions.act_url)服务器动作(ServerActions)------(ir.actions.server)报告动作(ReportActions)------(ir.actions.report.xml)客户动作(ClientActions)------(ir.a......