·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

通过 PHP 函数的 sendmail 发送 显示已成功,但是收不到邮件

503 2
发表于 2021-10-19 13:15:23 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
通过 PHP 函数的 sendmail 发送 显示已成功,但是收不到邮件 通过,函数,数的,sendmail,发送
换了好几个邮箱都收不到,也不是进垃圾邮件了。。
我要说一句 收起回复

评论2

Discuz智能体Lv.8 发表于 2025-3-16 13:41:18 | 查看全部
根据你提供的信息,你正在使用 PHP 的 `sendmail` 函数发送邮件,虽然显示发送成功,但收件人并未收到邮件。这种情况可能由多种原因引起。以下是一些可能的原因和解决方法:

### 1. **检查邮件服务器配置**
   - 确保你的邮件服务器配置正确。如果你使用的是第三方邮件服务(如 Gmail、QQ 等),请确保你已经正确配置了 SMTP 服务器、端口、用户名和密码。
   - 如果你使用的是本地的 `sendmail`,请确保 `sendmail` 服务已正确安装并运行。

### 2. **检查邮件头信息**
   - 确保邮件头信息(如 `From`, `To`, `Subject` 等)正确无误。错误的邮件头信息可能导致邮件被拒绝或无法送达。
   - 你可以使用 `mail()` 函数的第四个参数来添加额外的邮件头信息,例如:
   
  1. $headers = "From: your_email@example.com\r\n";
  2.      $headers .= "Reply-To: your_email@example.com\r\n";
  3.      $headers .= "Content-Type: text/plain; charset=UTF-8\r\n";
  4.      mail($to, $subject, $message, $headers);
复制代码


### 3. **检查邮件内容**
   - 确保邮件内容符合邮件服务器的要求。某些邮件服务器可能会拒绝包含特定内容或格式的邮件。
   - 你可以尝试发送简单的纯文本邮件,看看是否能成功送达。

### 4. **检查邮件服务器的日志**
   - 查看邮件服务器的日志文件,了解邮件是否被成功发送,或者是否有错误信息。日志文件通常位于 `/var/log/maillog` 或 `/var/log/mail.log`。
   - 如果你使用的是第三方邮件服务,查看是否有退信或错误报告。

### 5. **使用第三方库**
   - 如果你仍然无法解决问题,可以考虑使用第三方邮件库,如 PHPMailer 或 SwiftMailer。这些库提供了更强大的功能和更好的错误处理机制。
   - 例如,使用 PHPMailer 发送邮件的示例代码:
   
  1. use PHPMailer\PHPMailer\PHPMailer;
  2.      use PHPMailer\PHPMailer\Exception;

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

  6.      $mail = new PHPMailer(true);
  7.      try {
  8.          //Server settings
  9.          $mail->isSMTP();
  10.          $mail->Host = 'smtp.example.com';
  11.          $mail->SMTPAuth = true;
  12.          $mail->Username = 'your_email@example.com';
  13.          $mail->Password = 'your_password';
  14.          $mail->SMTPSecure = 'tls';
  15.          $mail->Port = 587;

  16.          //Recipients
  17.          $mail->setFrom('your_email@example.com', 'Your Name');
  18.          $mail->addAddress('recipient@example.com', 'Recipient Name');

  19.          //Content
  20.          $mail->isHTML(true);
  21.          $mail->Subject = 'Here is the subject';
  22.          $mail->Body    = 'This is the HTML message body <b>in bold!</b>';
  23.          $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

  24.          $mail->send();
  25.          echo 'Message has been sent';
  26.      } catch (Exception $e) {
  27.          echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
  28.      }
复制代码


### 6. **检查 DNS 和 SPF 记录**
   - 确保你的域名有正确的 DNS 和 SPF 记录。错误的 DNS 或 SPF 配置可能导致邮件被标记为垃圾邮件或被拒绝。

### 7. **检查防火墙和安全设置**
   - 确保你的服务器防火墙没有阻止邮件发送的端口(如 25, 465, 587 等)。
   - 检查服务器的安全设置,确保没有阻止邮件发送的规则。

### 8. **测试不同的邮件服务**
   - 如果你使用的是本地 `sendmail`,尝试使用不同的邮件服务(如 Gmail、QQ 等)来发送邮件,看看是否能成功送达。

### 9. **联系邮件服务提供商**
   - 如果你使用的是第三方邮件服务,联系他们的技术支持,了解是否有任何限制或问题导致邮件无法送达。

通过以上步骤,你应该能够找到并解决邮件发送失败的问题。如果问题仍然存在,建议使用第三方邮件库来发送邮件,以获得更好的错误处理和调试信息。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复
Discuz智能体Lv.8 发表于 2025-3-21 08:01:58 | 查看全部
根据你提供的信息,问题可能出在以下几个方面:

1. **邮件服务器配置问题**:确保你的服务器配置正确,特别是 `sendmail` 的配置。你可以检查 `php.ini` 文件中的 `sendmail_path` 配置项,确保它指向正确的 `sendmail` 路径。

2. **邮件发送日志**:查看 `sendmail` 的日志文件,通常位于 `/var/log/maillog` 或 `/var/log/mail.log`。日志中可能会提供更多关于邮件发送失败的信息。

3. **邮件头信息**:确保你发送的邮件头信息正确,特别是 `From`、`To`、`Subject` 等字段。错误的邮件头信息可能导致邮件被拒绝或无法送达。

4. **邮件内容格式**:确保邮件内容格式正确,特别是 `MIME` 类型和编码。错误的格式可能导致邮件无法正确显示或被拒绝。

5. **邮件服务器限制**:有些邮件服务器对发送邮件的频率、大小或内容有限制。确保你没有违反这些限制。

6. **DNS 配置**:确保你的服务器的 DNS 配置正确,特别是反向 DNS 解析。一些邮件服务器会检查反向 DNS 解析,如果解析失败,邮件可能会被拒绝。

7. **SPF 和 DKIM 记录**:确保你的域名配置了正确的 SPF 和 DKIM 记录。这些记录可以帮助防止邮件被标记为垃圾邮件。

8. **邮件队列**:检查 `sendmail` 的邮件队列,看看是否有邮件卡在队列中。你可以使用 `mailq` 命令查看邮件队列。

9. **防火墙和端口**:确保服务器的防火墙没有阻止邮件发送的端口(通常是 25 端口)。

10. **测试邮件**:尝试使用命令行工具(如 `mail` 或 `sendmail`)发送测试邮件,看看是否能成功发送。这可以帮助你确定问题是否出在 PHP 代码上。

如果你已经检查了以上所有方面,问题仍然存在,建议你联系服务器管理员或邮件服务提供商,获取进一步的帮助。

如果你需要更具体的代码示例或配置建议,请提供更多详细信息,我会尽力帮助你解决问题。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

图文热点
关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:18.119.0.207,GMT+8, 2025-4-4 03:44 , Processed in 0.298049 second(s), 80 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表