我正在尝试备份我的数据库并将zip文件通过电子邮件发送给我。以下代码工作正常,但它不附加zip。邮件和一切正常,zip文件已创建但我无法附加它。
$today = date("d/m/Y");
$to = 'Chris P <chris@*****.co.uk>';
$subject = 'Back Up File - '.$today;
$headers = 'From: Backup <backup@******.co.uk>' . "\r\n" .
$headers.= 'Reply-To: ****** (Chris) <chris@******.co.uk>' . "\r\n" .
$headers.= "X-Mailer: PHP/" . phpversion()."\r\n";
$headers.= "MIME-Version: 1.0" . "\r\n";
$headers.= "Content-type: text/html; charset=iso-8859-1 \r\n";
$random_hash = md5(date('r', time()));
$attachment = chunk_split(base64_encode(file_get_contents($fileName)));
ob_start(); //Turn on output buffering
$message2 = "<font face='verdana' size='-2'>Hey Chris,<p>";
$message2 .= "Here is the back up of the database, taken on the <strong>$today.</strong>\n\n";
$message2 .= "<p>The archive has the name of: <strong>$fileName</strong> and it's file-size is <strong>$fileSize.</strong>\n\n";
$message2 .= "Please find the file attatched.\n\n";
$message2 .= "<p>****** BackUp Generator ";
$message2 .= "--PHP-mixed- $random_hash;";
$message2 .= "Content-Type: application/zip; name=\"$filename\"";
$message2 .= "Content-Transfer-Encoding: base64";
$message2 .= "Content-Disposition: attachment";
$message2 .= $attachment;
$message2 .= "--PHP-mixed-<?php echo $random_hash; ?>--";
答案 0 :(得分:0)
您可能希望使用phpmailer,而不是尝试滚动自己的MIME编码。易于使用,安装简单 - 只需3个PHP文件即可复制到您的目录。见https://github.com/PHPMailer/PHPMailer
。您可以使用此页面上的示例作为您尝试执行的操作的样板。