Advertisement

如何在PHP中发送电子邮件?

阅读量:

在 PHP 中发送电子邮件一般会用内置函数如 mail 或者采用更强大的邮件处理库如 PHPMailer 或 Swift Mailer 两种方式来实现 email 发送功能。以下代码展示了如何用 mail 函数以及 PHPMailer 库编写基础邮件发送程序:

使用 mail 函数:

复制代码
    <?php
    
    $to = "recipient@example.com";
    $subject = "Test Email";
    $message = "This is a test email.";
    
    // Additional headers
    $headers = "From: sender@example.com\r\n";
    $headers .= "Reply-To: sender@example.com\r\n";
    $headers .= "CC: cc@example.com\r\n";
    $headers .= "BCC: bcc@example.com\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-type: text/html; charset=utf-8\r\n";
    
    // Send email
    $mailSent = mail($to, $subject, $message, $headers);
    
    if ($mailSent) {
    echo "Email sent successfully.";
    } else {
    echo "Email delivery failed!";
    }
    ?>

请记住调用 mail 函数时需要设置本地服务器的邮件传输代理参数(MTA)。例如Sendmail主要用于发送邮件而Postfix则用于处理复杂的邮件流量管理。

使用 PHPMailer:

第一步,请访问 GitHub 并获取 PHPMailer 库的最新版本以方便使用。访问 PHPMailer 的 GitHub 页面 获取最新版本,并将该库整合到你的项目中。

复制代码
    <?php
    
    use PHPMailer\PHPMailer\PHPMailer;
    use PHPMailer\PHPMailer\Exception;
    
    require 'vendor/autoload.php';
    
    // Create a new PHPMailer instance
    $mail = new PHPMailer(true);
    
    try {
    // Server settings
    $mail->isSMTP();
    $mail->Host = 'smtp.example.com';
    $mail->SMTPAuth = true;
    $mail->Username = 'your_username';
    $mail->Password = 'your_password';
    $mail->SMTPSecure = 'tls';
    $mail->Port = 587;
    
    // Recipients
    $mail->setFrom('sender@example.com', 'Sender Name');
    $mail->addAddress('recipient@example.com', 'Recipient Name');
    
    // Content
    $mail->isHTML(true);
    $mail->Subject = 'Test Email';
    $mail->Body = 'This is a test email.';
    
    // Send email
    $mail->send();
    echo 'Email sent successfully.';
    } catch (Exception $e) {
    echo "Email could not be sent. Mailer Error: {$mail->ErrorInfo}";
    }
    ?>

在上述示例中,确保替换以下信息:

  • smtp.example.com 是你的 SMTP 服务器地址;your_username 是你的用户名账户;而 your_password 则是你的访问密码。
  • 'sender@example.com' 是发件人的电子邮件地址;而 'recipient@example.com' 则是接收方的电子邮件地址。

采用PHPMailer这类邮件库通常更为灵活,并能提供更多高级功能如附件传输与SMTP验证等操作。选择合适的邮件库有助于提升代码的可维护性和安全性。

全部评论 (0)

还没有任何评论哟~