邮件通知API

发布时间 2023-12-16 19:17:44作者: AGuaA

这天在冲浪的时候发现一个好用的邮件api!

而且还是公益的!

邮件通知API使用

参数

支持markdown语法,在后台会自动转换为HTML语言执行发送

(在发起请求时需要转换为URL 编码,才可以正确启用markdown)

目前暂且只支持以下参数:

email:要接受的邮件地址

title:邮件主题

desp:邮件内容

uuid:验证密码(111)

调用

最简单的URL直接调用(可以直接浏览器请求测试)

https://api.mwm.moe/mail/mail.php?title=主题&desp=内容&email=邮箱地址&uuid=111

PHP调用示例:

<?php
// 邮件反馈
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // 获取表单数据
    $title = "API反馈";
    $email = "admin@mwm.moe";
    $uuid = "111";
    $txt1 = $_POST["txt1"];
    $txt2 = $_POST["txt2"];

    // 拼接API链接
    $api_url = "https://api.mwm.moe/mail/mail.php?desp=".urlencode("反馈建议:{$txt1}\n\n订阅邮箱:{$txt2}")."&title={$title}&email={$email}"&uuid={$uuid};
    // 发送POST请求
    $ch = curl_init($api_url);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $response = curl_exec($ch);
    curl_close($ch);
}  
?>
<form method="post" action="" novalidate>
  
<input title="那张图低清晰度?有什么奇妙的建议或想法?" type="text" name="txt1" id="fankui" placeholder="反馈建议" required>

<input id="biaodanan" class="btn transparent-btn" type="submit" value="提交" title="投入站长邮箱">
<br>
<input title="输入订阅邮箱" type="text" name="txt2" id="fankui" placeholder="输入订阅邮箱" required>
</form>

  

后端

实际搭建时需自行部署和引用PHPMailer和autoload以及Parsedown。

<?php
require 'PHPMailer.php';
require 'SMTP.php';
//引入Markdown转换html器
require_once 'vendor/autoload.php';
use Parsedown;
// 获取链接参数
$title = isset($_REQUEST['title']) ? $_REQUEST['title'] : '';
$desp = isset($_REQUEST['desp']) ? $_REQUEST['desp'] : '';
$email = isset($_REQUEST['email']) ? $_REQUEST['email'] : '';
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
    echo '请检查邮箱地址';
    exit;
}
//输入的Markdown文本
$markdownText = $desp;
try {
// 创建Parsedown实例
$parser = new Parsedown();
// 将Markdown转换为HTML
$html = $parser->text($markdownText);
// 创建一个新的 PHPMailer 实例
$mail = new PHPMailer\PHPMailer\PHPMailer();
$mail->CharSet = 'UTF-8';
// 设置邮件服务器
$mail->isSMTP();
$mail->Host = 'smtp.mwm.moe'; //SMTP 服务器地址
$mail->SMTPAuth = true;
$mail->Username = 'mail@mwm.moe'; //SMTP 邮箱用户名
$mail->Password = 'xxx'; //SMTP 邮箱密码
$mail->SMTPSecure = 'ssl'; //加密
$mail->Port = 465; //端口号

// 设置发件人和收件人
$mail->setFrom('mail@mwm.moe', '栗子邮件通知');
$mail->addAddress($email, $email); // 收件人邮箱地址

// 设置邮件主题和内容
$mail->isHTML(true);
$mail->Subject = $title;
$mail->Body = "$html";

// 发送邮件
if ($mail->send()) {
        echo '提交成功';
    } else {
        echo '发送邮件失败';
    }
} catch (Exception $e) {
    echo  $e->getMessage();
}
?>