首页 > 解决方案 > PHPMailer 不发送带有附加 zip 文件的邮件

问题描述

我正在尝试将我的备份 zip 文件附加到我的 gmail。大约 300kb 的 zip 文件我正在尝试使用此代码

<?php

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require 'Exception.php';
require 'PHPMailer.php';
require 'SMTP.php';

$mail = new PHPMailer(true);

try {
    $mail->IsHTML(true);
    $mail->SetFrom('info@myDomain.net', 'ADMIN');
    $mail->Subject   = 'mysite - Backup Files - ' . date('d-M-Y');
    $mail->Body      = 'This is your backup files date: ' . date('d-M-Y');
    $mail->AddAddress( 'myMail@gmail.com' );
    $mail->addAttachment('secret-backup-03-Apr-2019-2105361.zip');

    $mail->send();
    echo 'Message has been sent';
} catch (Exception $e) {
    echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
}
?>

我的 zip 存档是用这个 php 代码创建的:

<?php
function backup()
 {
  $name = "";
  $name = "./backup/backup-".date('d-M-Y').'-'.date('His').".zip";
  shell_exec("zip -q -e -9 -P 12345678 -r " . $name . " /home/user/public_html/* -x /home/user/public_html/CMD/backup/**\*");
  $secretname = "";
  $secretname = "./backup/secret-backup-".date('d-M-Y').'-'.date('His').".zip";
  shell_exec("zip -q -e -9 -P 12345678 -r " . $secretname . " " . $name);
  if (file_exists($secretname)) {
        unlink($name);
    }
 }

backup();
?>

但是邮件没有到达我的 gmail 我将文件从 更改secret-backup-03-Apr-2019-2105361.ziptestfile.rtf使用与附件到达的邮件完全相同的代码!有什么帮助吗???

编辑: 根据 A4L回答,我尝试使用相同的代码发送到 mymail@outlook.com,邮件成功到达。

现在它的Gmail问题。有什么帮助吗??

标签: phpgmailzipphpmailerzipfile

解决方案


确保使用 SSL 发送电子邮件并为您的域签署证书。发件人:应该有您的域,该域解析为您发送的 IP,并且还具有有效的 SPF 记录。Google 发现您的电子邮件是垃圾邮件。如果它不在您的垃圾邮件文件夹中,谷歌只是阻止了它。检查您的邮件日志(在 /var/log*mail 中的某个位置),它应该有一个指向 google 支持页面的链接,其中包含有关如何使您的邮件被投递的说明。


推荐阅读