这个想法是用户可以在屏幕上排列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将其作为附件包含在电子邮件中?如果有更好的替代方案我当然也喜欢听。
答案 0 :(得分:0)
由于PHP的mail()
实际上是发送原始电子邮件内容的简单“代理”,因此您有两种选择:
为PHP使用更多功能包,允许您构建带附件的邮件(例如PEAR Mail_Mime)。
了解如何构建多部分邮件内容。由于在这种情况下非常简单(并且仅涉及Content-type
,Content-disposition
这样的术语),因此我会在此推荐它。
最简单的方法是通过示例学习,因此请在您的电子邮件客户端中收集一些简单的邮件(带附件)并查看此邮件的来源。您甚至可以将此源用作发送到PHP mail()
函数的数据的模板。