You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio新手求助:配送APP提交订单时的邮件通知实现方法

实现配送APP订单通知功能的步骤

1. 搭建后端接口接收订单数据

你需要一个后端服务来处理前端提交的订单请求,以下是Node.js(Express框架)的极简示例:

const express = require('express');
const app = express();
app.use(express.json());

// 订单提交接口
app.post('/submit-order', (req, res) => {
  // 提取前端传来的核心数据:订单内容、用户邮箱、商家通知联系方式
  const { orderContent, userEmail, merchantContact } = req.body;
  
  // 基础数据校验
  if (!orderContent || !userEmail || !merchantContact) {
    return res.status(400).json({ message: '请填写完整信息' });
  }

  // 后续将在此处添加通知逻辑,先返回基础成功响应
  res.status(200).json({ message: '订单已接收' });
});

app.listen(3000, () => console.log('服务运行在3000端口'));

前端给提交按钮绑定点击事件,用POST请求发送表单数据:

document.getElementById('submit-btn').addEventListener('click', async () => {
  const orderContent = document.getElementById('order-input').value;
  const userEmail = document.getElementById('user-email').value;
  // 商家联系方式可写死在前端或后端配置中
  const merchantContact = '你的邮箱/手机号';

  try {
    const response = await fetch('/submit-order', {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify({ orderContent, userEmail, merchantContact })
    });
    const result = await response.json();
    alert(result.message);
  } catch (error) {
    alert('提交失败,请稍后重试');
  }
});

2. 实现邮件通知功能

商家订单通知&用户确认邮件

用nodemailer库搭配免费邮箱(如Gmail,需开启SMTP权限)实现:
先安装依赖:npm install nodemailer
然后在后端接口中添加邮件发送逻辑:

const nodemailer = require('nodemailer');

// 创建邮件传输配置
const transporter = nodemailer.createTransport({
  service: 'Gmail',
  auth: {
    user: '你的邮箱地址',
    pass: '邮箱授权码(非登录密码)'
  }
});

// 发送商家通知邮件
async function sendMerchantMail(orderContent, merchantEmail) {
  const mailOptions = {
    from: '你的邮箱地址',
    to: merchantEmail,
    subject: '新订单通知',
    text: `新订单内容:\n${orderContent}`
  };
  await transporter.sendMail(mailOptions);
}

// 发送用户确认邮件
async function sendUserConfirmMail(userEmail, orderContent) {
  const mailOptions = {
    from: '你的邮箱地址',
    to: userEmail,
    subject: '订单已接收',
    text: `感谢下单!你的订单内容:\n${orderContent}\n我们会尽快处理。`
  };
  await transporter.sendMail(mailOptions);
}

// 更新订单接口,加入邮件发送逻辑
app.post('/submit-order', async (req, res) => {
  const { orderContent, userEmail, merchantContact } = req.body;
  
  if (!orderContent || !userEmail || !merchantContact) {
    return res.status(400).json({ message: '请填写完整信息' });
  }

  try {
    // 并行发送两类邮件
    await Promise.all([
      sendMerchantMail(orderContent, merchantContact),
      sendUserConfirmMail(userEmail, orderContent)
    ]);
    res.status(200).json({ message: '订单已接收,确认邮件已发送' });
  } catch (error) {
    console.error('邮件发送失败:', error);
    res.status(500).json({ message: '订单已提交,但通知发送失败,请稍后查看' });
  }
});

3. 实现短信通知功能(可选)

若需要短信通知商家,可借助第三方短信服务(如阿里云短信、Twilio),以Twilio为例:

  1. 注册Twilio账号,获取Account SID、Auth Token及专属手机号
  2. 安装依赖:npm install twilio
  3. 添加短信发送函数:
const twilio = require('twilio');
const client = twilio('你的Account SID', '你的Auth Token');

async function sendMerchantSMS(orderContent, merchantPhone) {
  await client.messages.create({
    body: `新订单通知:${orderContent}`,
    from: '你的Twilio手机号',
    to: merchantPhone
  });
}

随后将该函数加入订单接口的Promise.all队列即可。

4. 关键注意事项

  • 数据存储:建议接入数据库(如MySQL、MongoDB)保存订单记录,方便后续查询和管理。
  • 安全防护:邮箱授权码、短信服务密钥等敏感信息不要硬编码,用环境变量(如process.env.MAIL_PASSWORD)管理。
  • 错误处理:记录通知发送失败的日志,必要时添加重试机制。
  • 前端体验:给提交按钮添加loading状态,避免用户重复点击。

内容的提问来源于stack exchange,提问作者Tayton Firth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 08:37:50