如何使用 PHP 将 xml 文件发送到电子邮件?

Posted

技术标签:

【中文标题】如何使用 PHP 将 xml 文件发送到电子邮件?【英文标题】:How to send a xml file in to an email using PHP? 【发布时间】:2014-12-31 04:13:45 【问题描述】:

我创建了一个 XML,我想将其作为电子邮件的附件发送。如何使用 php 做到这一点?我的代码不工作

我有这个

<?php
$mail_to = "";
$from_mail = "";
$from_name = "";
$reply_to = "";
$subject = "";
$message = "";

/* 附件文件 */ // 附件位置

$file_name = "only1.php";
$path = "http://66.147.244.92/~homecre1/public_html/Test/only1.php;

//读取文件内容

$file = $path.$file_name;
$file_size = filesize($file);
$handle = fopen($file, "r");
$content = fread($handle, $file_size);
fclose($handle);
$content = chunk_split(base64_encode($content));

/* 设置邮件头 */ // 生成边界

$boundary = md5(uniqid(time()));

// 邮件标题

$header = "From: ".$from_name." \r\n";
$header .= "Reply-To: ".$reply_to."\r\n";
$header .= "MIME-Version: 1.0\r\n";

// 多部分包装电子邮件内容和附件

$header .= "Content-Type: multipart/mixed;\r\n";
$header .= " boundary=\"".$boundary."\"";

$message .= "This is a multi-part message in MIME format.\r\n\r\n";
$message .= "--".$boundary."\r\n";

// 邮件内容 // 内容类型可以是 text/plain 或 text/html

$message .= "Content-Type: text/plain; charset=\"iso-8859-1\"\r\n";
$message .= "Content-Transfer-Encoding: 7bit\r\n";
$message .= "\r\n";
$message .= "$message_body\r\n";
$message .= "--".$boundary."\r\n";

// 附件 // 编辑不同文件扩展名的内容类型

$message .= "Content-Type: application/php;\r\n";
$message .= " name=\"".$file_name."\"\r\n";
$message .= "Content-Transfer-Encoding: base64\r\n";
$message .= "Content-Disposition: attachment;\r\n";
$message .= " filename=\"".$file_name."\"\r\n";
$message .= "\r\n".$content."\r\n";
$message .= "--".$boundary."--\r\n";

// 发送电子邮件

if (mail($mail_to, $subject, $message, $header)) 
    echo "Sent";
 else 
    echo "Error";

?>

【问题讨论】:

Send attachments with PHP Mail()? 的可能重复项 【参考方案1】:

如果您使用的是 PhpMailer 库,请使用以下函数添加文件。

$mail->AddAttachment("filename");

PHPMailer 库 链接:https://github.com/PHPMailer/PHPMailer

【讨论】:

没有PHPMailer有什么选择吗? 请通过邮件功能说明如何发送。 php.net/manual/en/function.mail.php你为它编写你自己的函数。一个人编写了名为 public static function prepareAttachment($path) 的通用函数

以上是关于如何使用 PHP 将 xml 文件发送到电子邮件?的主要内容,如果未能解决你的问题,请参考以下文章

使用配置 PHP 文件和 PHP Mailer 将电子邮件发送到多个地址

如何使用 PHP 邮件功能将 PDF 附加到电子邮件

PHP HTML - 将上传的文件发送到 Gmail

如何将 JWT 令牌从 PHP 发送到 Angular?

如何在不使用 PHP 将文件写入磁盘的情况下将文件发布到 REST 服务器?

如何使用mailgun php API仅将邮件发送到密件抄送? [复制]