在Linux环境下使用PHP发送邮件,可以通过内置的mail() 函数或者使用第三方库如 PHPMailer,以下是详细的步骤和示例:
1. 使用PHP内置的mail() 函数

(图片来源网络,侵删)
安装和配置sendmail
1、安装sendmail:
sudo yum install sendmail -y
2、启动sendmail服务:
sudo systemctl start sendmail
3、设置开机自启:
sudo systemctl enable sendmail
4、修改php.ini文件:

(图片来源网络,侵删)
编辑/etc/php.ini 文件,添加或修改以下行:
[mail function] sendmail_path = /usr/sbin/sendmail -t -i
使用PHP代码发送邮件
<?php
$to = 'recipient@example.com';
$subject = 'Hello World!';
$body = 'Welcome to China!';
$headers = "From: sender@example.comr
";
$headers .= "Reply-To: sender@example.comr
";
$headers .= "Content-Type: text/html; charset=utf-8r
";
if(mail($to, $subject, $body, $headers)) {
echo '邮件发送成功!';
} else {
echo '邮件发送失败。';
}
?> 2. 使用PHPMailer库发送邮件
安装PHPMailer
1、通过Composer安装:

(图片来源网络,侵删)
composer require phpmailer/phpmailer
2、手动下载并包含相关文件:从PHPMailer官方网站[下载](https://github.com/PHPMailer/PHPMailer)并解压到项目目录中。
使用PHPMailer发送邮件
<?php
require 'vendor/autoload.php'; // 如果通过Composer安装
use PHPMailerPHPMailerPHPMailer;
use PHPMailerPHPMailerException;
$mail = new PHPMailer(true); // 启用异常处理
try {
// 服务器设置
$mail->SMTPDebug = 2; // 启用SMTP调试,输出详细信息
$mail->isSMTP(); // 设置使用SMTP服务
$mail->Host = 'smtp.example.com'; // SMTP服务器地址
$mail->SMTPAuth = true; // 启用SMTP认证
$mail->Username = 'your-smtp-username'; // SMTP用户名
$mail->Password = 'your-smtp-password'; // SMTP密码
$mail->SMTPSecure = 'tls'; // 启用TLS加密,可选值有ssl、tls
$mail->Port = 587; // SMTP端口,根据服务器配置设置
// 收件人
$mail->setFrom('sender@example.com', 'Sender Name'); // 设置发件人信息
$mail->addAddress('recipient@example.com', 'Recipient Name'); // 添加收件人
// 邮件内容
$mail->isHTML(true); // 设置邮件格式为HTML
$mail->Subject = 'Test Email via PHPMailer'; // 邮件主题
$mail->Body = '<h1>Hello, this is a test email sent using PHPMailer!</h1>'; // 邮件正文
// 发送邮件
if ($mail->send()) {
echo '邮件发送成功!';
} else {
echo '邮件发送失败:' . $mail->ErrorInfo;
}
} catch (Exception $e) {
echo '邮件发送异常:' . $e->getMessage();
}
?> 注意事项
1、确保sendmail或postfix服务正常运行:如果使用的是PHP内置的mail() 函数,需要确保Linux服务器上的sendmail或postfix服务已经正确安装和配置。
2、检查垃圾邮件文件夹:有时邮件可能会被接收方的邮件服务器误判为垃圾邮件,请检查垃圾邮件文件夹。
3、日志记录:建议开启日志功能,以便排查邮件发送过程中出现的问题。
各位小伙伴们,我刚刚为大家分享了有关linux php 发送邮件的知识,希望对你们有所帮助。如果您还有其他相关问题需要解决,欢迎随时提出哦!
本文来源于互联网,如若侵权,请联系管理员删除,本文链接:https://www.9969.net/82384.html