首页主机资讯phpstorm在Ubuntu上如何配置SMTP邮件发送

phpstorm在Ubuntu上如何配置SMTP邮件发送

时间2026-01-20 14:27:04发布访客分类主机资讯浏览1272
导读:在 Ubuntu 上让 PhpStorm 项目通过 SMTP 发信的正确做法 PhpStorm 不提供内置的 SMTP 账号配置,邮件由项目代码或运行环境发出。推荐在 Ubuntu 项目中使用 PHPMailer 直连邮件服务商的 SMTP...

在 Ubuntu 上让 PhpStorm 项目通过 SMTP 发信的正确做法

PhpStorm 不提供内置的 SMTP 账号配置,邮件由项目代码或运行环境发出。推荐在 Ubuntu 项目中使用 PHPMailer 直连邮件服务商的 SMTP,或在系统侧配置 Postfix 仅发送 作为本地 SMTP 中继。下面给出两种方式的实操步骤与排错要点。


方式一 使用 PHPMailer 直连 SMTP(推荐)

  • 安装依赖
    • 安装 Composer(如未安装):sudo apt-get update & & sudo apt-get install composer
    • 进入项目目录安装 PHPMailer:composer require phpmailer/phpmailer
  • 最小可用示例代码(以端口 587 + STARTTLS 为例)
    • 将示例中的 SMTP 服务器、端口、账号与密码替换为你的服务商信息(如 smtp.qq.com:587smtp.gmail.com:587 等)
    • 若服务商要求“应用专用密码”或“开启 SMTP 权限”,请先在邮箱后台开启
    • 常见端口:587/STARTTLS465/SSL
<
    ?php
use PHPMailer\PHPMailer\PHPMailer;
    
use PHPMailer\PHPMailer\SMTP;
    
use PHPMailer\PHPMailer\Exception;
    

require 'vendor/autoload.php';
    

$mail = new PHPMailer(true);

try {
    
    // 服务器设置
    $mail->
    SMTPDebug = SMTP::DEBUG_SERVER;
                // 调试时可开启
    $mail->
    isSMTP();
    
    $mail->
    Host       = 'smtp.example.com';
               // 例如:smtp.qq.com
    $mail->
    SMTPAuth   = true;
    
    $mail->
    AuthType   = SMTP::AUTH_LOGIN;
                // 多数服务商使用 LOGIN
    $mail->
    Port       = 587;
                            // 或 465
    $mail->
    SMTPSecure = SMTP::ENCRYPTION_STARTTLS;
      // 587 用 STARTTLS;465 用 ENCRYPTION_SMTPS

    // 凭据
    $mail->
    Username   = 'your_email@example.com';
    
    $mail->
    Password   = 'your_password_or_app_password';
    

    // 发件人与收件人
    $mail->
    setFrom('from@example.com', 'Mailer');
    
    $mail->
    addAddress('recipient@example.com', 'Recipient');
    

    // 内容
    $mail->
    isHTML(true);
    
    $mail->
    Subject = '测试邮件';
    
    $mail->
    Body    = '这是一封来自 <
    b>
    PHPMailer<
    /b>
     的测试邮件。';
    
    $mail->
    AltBody = '这是一封纯文本备用内容。';
    

    $mail->
    send();
    
    echo 'Message has been sent';

}
 catch (Exception $e) {

    echo "Message could not be sent. Mailer Error: {
    $mail->
ErrorInfo}
    ";

}
    
  • 在 PhpStorm 中运行
    • 使用内置 Terminal 执行:php your_send_script.php
    • 或在浏览器访问触发脚本(如使用内置 PHP 内置服务器:php -S 0.0.0.0:8000)
  • 排错要点
    • 开启 $mail-> SMTPDebug 查看握手与认证细节
    • 确认防火墙/云安全组放行 25/587/465
    • 核对用户名、密码/应用专用密码、发件人 From 是否被服务商允许

方式二 配置 Postfix 仅发送 SMTP 中继(系统级方案)

  • 安装与基础配置
    • 安装 Postfix 与测试工具:sudo apt-get install postfix mailutils
    • 安装向导中选择 Internet Site,System mail name 填你的域名(如 example.com
    • 编辑 /etc/postfix/main.cf
      • 仅本地回环:inet_interfaces = loopback-only
      • 允许的收件域:mydestination = $myhostname, localhost.$mydomain, $mydomain
    • 重启:sudo systemctl restart postfix
  • 测试
    • echo “This is the body” | mail -s “Test subject” your_email@example.com
    • 若未收到,检查垃圾箱;必要时为域名配置 SPF 记录以降低被判垃圾的概率
  • 说明
    • 该方式让本机应用通过本地 Postfix 出站,Postfix 再转发到上游 SMTP(需进一步配置 SASL/中继主机)。适合统一管控出站邮件与系统通知。

常见服务商 SMTP 参数示例

  • 端口与加密
    • 587 + STARTTLS(推荐):如 smtp.qq.com、smtp.gmail.com
    • 465 + SSL:部分服务商支持
  • 账号与密码
    • 多数邮箱需开启“SMTP 服务/应用专用密码”
    • 发件人地址需与登录账号一致或为被授权别名

在 PhpStorm 中的运行与调试建议

  • 使用内置 Terminal 直接运行脚本,便于查看 PHP 输出与 PHPMailer 的调试信息
  • 将 $mail-> SMTPDebug 设为 SMTP::DEBUG_SERVER 定位握手、认证、发信失败原因
  • 若脚本通过 Web 访问触发,确认 Web 服务器(Apache/PHP-FPM)使用的 PHP 版本与 CLI 一致,且网络策略允许出站到 25/587/465

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: phpstorm在Ubuntu上如何配置SMTP邮件发送
本文地址: https://pptw.com/jishu/787257.html
ifconfig无法识别网卡怎么办 phpstorm如何优化Ubuntu上的内存使用

游客 回复需填写必要信息