接收来自当前网站源代码的附件的电子邮件

时间:2012-08-31 21:29:15

标签: php jquery attachment email-attachments

这个想法是用户可以在屏幕上排列div块(拖放)。当用户认为位置良好时,他们可以通过表单向我发送姓名和电子邮件的位置。

<form action="#">       
<input name="name" id="name">        
<input name="email" id="email">       
<input name="htmlcontent" id="htmlcontent">        
<p><button type="submit">Send to DKdL</button></p>
</form>

表格将手工填写。除了将粘贴完整源代码的字段(通过jquery - 也将在此处过滤)。这就是我后来知道每个div块的位置。这将通过jquery post发送。

$('form').on('submit', function(e) {

var html = $('html').html();
var htmlSending = '<html>' + html + '</html>';
var noScript = htmlSending.replace(/script/g, "h6");

//alert(noScript);
$('input#htmlcontent').val(noScript);

$.post('http://www.address/save.php', $(this).serialize(), function(data) {
    //callback to use for thank you message
    console.log(data);
});

e.preventDefault();
});

在php中我希望将第三个字段(带有复制和过滤的html源代码)保存为.html文件,其后面有名称和日期(例如:peter_01-09-2012.html)并包含在作为附件的电子邮件将发送给我。

<?php

$name = name;
$email = email;
$htmlcontent = htmlcontent;
//file_put_contents('file.html', '$htmlcontent'); 

$to = '"My Email <my.email@mail.com>';
$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 

$message =
<p>Name: $name</p>
<p>E-Mail: $email</p>
here should be a url to the HTML Content: $htmlcontent
or a real email attachment
;   
?>

这有可能实现吗?不幸的是我的知识无法在PHP中达到。我只知道可以写入文件。但是,如何告诉php将其作为附件包含在电子邮件中?如果有更好的替代方案我当然也喜欢听。

1 个答案:

答案 0 :(得分:0)

由于PHP的mail()实际上是发送原始电子邮件内容的简单“代理”,因此您有两种选择:

  1. 为PHP使用更多功能包,允许您构建带附件的邮件(例如PEAR Mail_Mime)。

  2. 了解如何构建多部分邮件内容。由于在这种情况下非常简单(并且仅涉及Content-typeContent-disposition这样的术语),因此我会在此推荐它。

  3. 最简单的方法是通过示例学习,因此请在您的电子邮件客户端中收集一些简单的邮件(带附件)并查看此邮件的来源。您甚至可以将此源用作发送到PHP mail()函数的数据的模板。