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

PHP实现用户发布职位时发送含$job_title变量的HTML邮件

实现职位发布后的自动HTML邮件通知(PHP+PHPMailer)

我来帮你完善这个PHPMailer函数,让它能在用户发布职位后自动发送包含职位名称的HTML邮件。下面是完整的可运行代码,关键细节我都标注好了:

require('phpmailer/PHPMailer.php');
require('phpmailer/Exception.php');
require('phpmailer/SMTP.php');
require('phpmailer/POP3.php');
require('phpmailer/OAuth.php');

function sendJobPostedEmail($to, $job_title) {
    try {
        $mail = new PHPMailer\PHPMailer\PHPMailer(true); // 启用异常处理,方便捕获发送错误

        // 1. 配置SMTP服务器信息(替换成你自己的邮箱服务商配置)
        $mail->isSMTP();
        $mail->Host = 'smtp.example.com'; // 比如Gmail用smtp.gmail.com,QQ邮箱用smtp.qq.com
        $mail->SMTPAuth = true;
        $mail->Username = 'your-sender-email@example.com'; // 发件人邮箱账号
        $mail->Password = 'your-email-password-or-app-code'; // 邮箱密码/应用专用密码(两步验证时用后者)
        $mail->SMTPSecure = PHPMailer\PHPMailer\PHPMailer::ENCRYPTION_STARTTLS; // 加密方式,一般选TLS
        $mail->Port = 587; // TLS对应端口587,SSL对应465

        // 2. 设置发件人和收件人
        $mail->setFrom('your-sender-email@example.com', '你的应用名称');
        $mail->addAddress($to); // 接收通知的用户邮箱

        // 3. 构建带职位名称的HTML邮件内容
        $mail->isHTML(true);
        $mail->Subject = '职位发布成功通知';
        $mail->Body = "
            <html>
                <body style='font-family: Arial, sans-serif; max-width: 600px; margin: 20px auto; padding: 20px; border: 1px solid #eee; border-radius: 8px;'>
                    <h2 style='color: #2d3748;'>🎉 你的职位发布成功啦!</h2>
                    <p>你刚刚发布的职位:<strong style='color: #2b6cb0;'>{$job_title}</strong> 已经正式上线。</p>
                    <p>后续可以在应用后台查看职位的投递情况,如有疑问随时联系我们的客服团队。</p>
                    <hr style='border-top: 1px solid #eee; margin: 20px 0;'>
                    <p style='font-size: 12px; color: #718096;'>这是系统自动发送的邮件,请勿直接回复。</p>
                </body>
            </html>
        ";
        $mail->AltBody = "你的职位【{$job_title}】已成功发布上线,可在后台查看投递情况,如有问题请联系客服。"; // 纯文本备用内容,适配不支持HTML的邮箱

        // 4. 发送邮件
        $mail->send();
        return true; // 发送成功返回true
    } catch (Exception $e) {
        // 捕获错误,可记录到日志方便排查
        error_log("邮件发送失败: {$mail->ErrorInfo}");
        return false;
    }
}

关键细节说明:

  • SMTP配置:一定要替换成你实际使用的邮箱服务商信息,比如用Gmail的话,需要先开启SMTP服务,开启两步验证的话要使用应用专用密码。
  • 职位名称嵌入:我把$job_title变量放在了<strong>标签里,用蓝色高亮突出,让邮件内容更醒目。
  • 异常处理:用try-catch包裹整个流程,发送失败时会记录错误日志,方便你定位问题。
  • 兼容性:设置了纯文本的AltBody,确保即使收件人邮箱不支持HTML,也能收到清晰的通知。

你只需要在用户发布职位成功的逻辑里调用这个函数即可,比如:

// 假设用户发布职位后拿到的收件邮箱和职位名
$userEmail = 'user@example.com';
$postedJob = '资深前端开发工程师';
sendJobPostedEmail($userEmail, $postedJob);

内容的提问来源于stack exchange,提问作者Adam G

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 04:24:46