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

如何在Mac系统的MAMP本地环境中使用PHP发送邮件?

MAMP环境PHP发送邮件的可行实现方案

方案1:配置原生mail()函数(仅适合本地测试)

操作步骤如下:

  • 打开MAMP对应PHP版本的配置文件,路径为:/Applications/MAMP/bin/php/php7.4.12/conf/php.ini
  • 找到[mail function]配置块,修改为以下内容:
SMTP = localhost
smtp_port = 25
sendmail_path = /usr/sbin/sendmail -t -i
mail.add_x_header = On
  • 打开Mac终端,执行命令启动系统自带的postfix邮件传输服务:sudo postfix start
  • 如需开机自动启动postfix,执行命令:sudo launchctl enable system/org.postfix.master
  • 修改完成后重启MAMP的Apache服务,配置才会生效
  • 测试代码示例:
<?php
$to = '你的接收邮箱地址';
$subject = '测试邮件';
$message = '这是来自本地MAMP的测试内容';
$headers = 'From: sender@example.com' . "\r\n" .
    'Reply-To: sender@example.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

if(mail($to, $subject, $message, $headers)){
    echo '邮件发送成功';
}else{
    echo '发送失败,错误信息:'.error_get_last()['message'];
}
?>

方案2:使用PHPMailer走第三方SMTP服务(推荐,生产环境可用)

原生mail()函数配置繁琐,发送的邮件极易被判定为垃圾邮件,更推荐使用成熟的PHPMailer库对接QQ、网易等公共邮箱的SMTP服务:

  • 下载PHPMailer官方源码包,解压到你的项目目录下
  • 提前在你用来发信的邮箱设置中开启SMTP服务,获取平台提供的SMTP授权码
  • 表单处理代码示例:
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require 'path/to/PHPMailer/src/Exception.php';
require 'path/to/PHPMailer/src/PHPMailer.php';
require 'path/to/PHPMailer/src/SMTP.php';

// 接收表单提交的内容
$user_email = $_POST['user_email'];
$message_content = $_POST['message'];

$mail = new PHPMailer(true);
try {
    // 服务器配置
    $mail->isSMTP();
    $mail->Host = 'smtp.qq.com'; // 如果你用网易就填smtp.163.com
    $mail->SMTPAuth = true;
    $mail->Username = '你的发信邮箱地址';
    $mail->Password = '你的邮箱SMTP授权码';
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;
    $mail->Port = 465;

    // 收件人设置
    $mail->setFrom('你的发信邮箱地址', '网站表单提醒');
    $mail->addAddress('你的接收邮箱地址');
    $mail->addReplyTo($user_email, '提交表单的用户');

    // 邮件内容
    $mail->isHTML(false);
    $mail->Subject = '网站新表单提交';
    $mail->Body    = "用户邮箱:$user_email \n 消息内容:$message_content";

    $mail->send();
    echo '表单提交成功,我们会尽快联系你';
} catch (Exception $e) {
    echo "表单提交失败,错误信息:{$mail->ErrorInfo}";
}
?>

注意事项

  • 本地测试时如果发送失败,先检查发信邮箱的SMTP配置是否正确,是否开启了IP白名单限制
  • 生产环境需要增加表单校验逻辑,过滤用户输入的非法内容,避免被利用发送垃圾邮件
  • 不要使用原生mail()函数处理生产环境的邮件发送需求,稳定性和到达率都极低

内容的提问来源于stack exchange,提问作者Bhavya Jain

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 23:36:07