首页主机资讯如何在Debian上配置PHP的SMTP邮件发送

如何在Debian上配置PHP的SMTP邮件发送

时间2025-12-01 12:26:03发布访客分类主机资讯浏览337
导读:在Debian上配置PHP的SMTP邮件发送可以通过多种方式实现,以下是使用sendmail和PHPMailer两种常见方法的步骤: 方法一:使用Sendmail 安装Sendmail sudo apt update sudo apt...

在Debian上配置PHP的SMTP邮件发送可以通过多种方式实现,以下是使用sendmailPHPMailer两种常见方法的步骤:

方法一:使用Sendmail

  1. 安装Sendmail

    sudo apt update
    sudo apt install sendmail
    
  2. 配置Sendmail 编辑Sendmail配置文件 /etc/mail/sendmail.cf 或创建一个 .cf 文件并链接到 /etc/mail/sendmail.cf

    sudo nano /etc/mail/sendmail.cf
    

    在文件中添加或修改以下行:

    define(`SMART_HOST', `smtp.yourprovider.com')dnl
    define(`RELAY_MAILER_ARGS', `TCP $h 587')dnl
    define(`ESMTP_MAILER_ARGS', `TCP $h 587')dnl
    define(`confAUTH_OPTIONS', `A p')dnl
    TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
    define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
    
  3. 重启Sendmail

    sudo systemctl restart sendmail
    
  4. 配置PHPMailer 在你的PHP脚本中使用PHPMailer发送邮件:

    <
        ?php
    use PHPMailer\PHPMailer\PHPMailer;
        
    use PHPMailer\PHPMailer\SMTP;
        
    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';
        
    
    $mail = new PHPMailer(true);
    
    
    try {
        
        //Server settings
        $mail->
        SMTPDebug = SMTP::DEBUG_SERVER;
                              // Enable verbose debug output
        $mail->
        isSMTP();
                                                    // Send using SMTP
        $mail->
        Host       = 'smtp.yourprovider.com';
                             // Set the SMTP server to send through
        $mail->
        SMTPAuth   = true;
                                           // Enable SMTP authentication
        $mail->
        AuthType   = SMTP::AUTH_LOGIN;
                                // Authentication type
        $mail->
        Port       = 587;
                                            // TCP port to connect to;
         use 465 for `SMTPS`
        $mail->
        SMTPSecure = SMTP::ENCRYPTION_STARTTLS;
                 // Enable implicit TLS encryption
        $mail->
        Username   = 'your-email@example.com';
                       // SMTP username
        $mail->
        Password   = 'your-password';
                                // SMTP password
    
        //Recipients
        $mail->
        setFrom('from@example.com', 'Mailer');
        
        $mail->
        addAddress('recipient@example.com', 'Joe User');
             // Add a recipient
    
        // Content
        $mail->
        isHTML(true);
                                                // Set email format to HTML
        $mail->
        Subject = 'Here is the subject';
        
        $mail->
        Body    = 'This is the HTML message body <
        b>
        in bold!<
        /b>
        ';
        
        $mail->
        AltBody = 'This is the body in plain text for non-HTML mail clients';
        
    
        $mail->
        send();
        
        echo 'Message has been sent';
    
    }
     catch (Exception $e) {
    
        echo "Message could not be sent. Mailer Error: {
        $mail->
    ErrorInfo}
        ";
    
    }
        
    

方法二:使用PHPMailer直接发送邮件

  1. 安装PHPMailer

    composer require phpmailer/phpmailer
    
  2. 配置PHPMailer 在你的PHP脚本中使用PHPMailer发送邮件:

    <
        ?php
    use PHPMailer\PHPMailer\PHPMailer;
        
    use PHPMailer\PHPMailer\SMTP;
        
    use PHPMailer\PHPMailer\Exception;
        
    
    require 'vendor/autoload.php';
        
    
    $mail = new PHPMailer(true);
    
    
    try {
        
        //Server settings
        $mail->
        SMTPDebug = SMTP::DEBUG_SERVER;
                              // Enable verbose debug output
        $mail->
        isSMTP();
                                                    // Send using SMTP
        $mail->
        Host       = 'smtp.yourprovider.com';
                             // Set the SMTP server to send through
        $mail->
        SMTPAuth   = true;
                                           // Enable SMTP authentication
        $mail->
        AuthType   = SMTP::AUTH_LOGIN;
                                // Authentication type
        $mail->
        Port       = 587;
                                            // TCP port to connect to;
         use 465 for `SMTPS`
        $mail->
        SMTPSecure = SMTP::ENCRYPTION_STARTTLS;
                 // Enable implicit TLS encryption
        $mail->
        Username   = 'your-email@example.com';
                       // SMTP username
        $mail->
        Password   = 'your-password';
                                // SMTP password
    
        //Recipients
        $mail->
        setFrom('from@example.com', 'Mailer');
        
        $mail->
        addAddress('recipient@example.com', 'Joe User');
             // Add a recipient
    
        // Content
        $mail->
        isHTML(true);
                                                // Set email format to HTML
        $mail->
        Subject = 'Here is the subject';
        
        $mail->
        Body    = 'This is the HTML message body <
        b>
        in bold!<
        /b>
        ';
        
        $mail->
        AltBody = 'This is the body in plain text for non-HTML mail clients';
        
    
        $mail->
        send();
        
        echo 'Message has been sent';
    
    }
     catch (Exception $e) {
    
        echo "Message could not be sent. Mailer Error: {
        $mail->
    ErrorInfo}
        ";
    
    }
        
    

通过以上两种方法,你可以在Debian上配置PHP的SMTP邮件发送。选择适合你的方法进行配置即可。

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


若转载请注明出处: 如何在Debian上配置PHP的SMTP邮件发送
本文地址: https://pptw.com/jishu/759978.html
如何在Debian上配置PHP的错误报告级别 Debian PHP配置中如何启用MySQL支持

游客 回复需填写必要信息