PHP 表单通过电子邮件发送的结果。我需要捕获表单中的上传文件
Posted
技术标签:
【中文标题】PHP 表单通过电子邮件发送的结果。我需要捕获表单中的上传文件【英文标题】:PHP Form Emailed results. I need to capture the upload file in the form 【发布时间】:2011-06-09 13:00:17 【问题描述】:我有一个表单,通过 php 脚本在每次提交时通过电子邮件发送结果。
我正在使用 ajax 脚本以表单的形式将文件上传到我的服务器。
如果文件已上传,是否可以用“是”或“否”通知我?
有什么方法可以将文件附加到表单中吗?
有插图吗?
我正在使用 ajax 和 jquery。
埃里克
<?php
$prefix = 'LPFQ';
$uniqid = $prefix . uniqid();
$QuoteID = strtoupper($uniqid);
$Email = $_REQUEST['Email'];
$Name = $_REQUEST['Name'];
$Company = $_REQUEST['Company'];
$Telephone = $_REQUEST['Telephone'];
$Message = stripslashes($_REQUEST['Message']);
$Industry = $_REQUEST['Industry'];
$ProjectName = stripslashes($_REQUEST['ProjectName']);
$Combination = $_REQUEST['Combination'];
$DateExpectDelivery = $_REQUEST['DateExpectDelivery'];
$UploadFiles = $_REQUEST['UploadFiles'];
$Quantity1 = $_REQUEST['Quantity1'];
$Quantity2 = $_REQUEST['Quantity2'];
$Quantity3 = $_REQUEST['Quantity3'];
$Quantity4 = $_REQUEST['Quantity4'];
$CartonSizeLength = $_REQUEST['CartonSizeLength'];
$CartonSizeWidth = $_REQUEST['CartonSizeWidth'];
$CartonSizeHeight = $_REQUEST['CartonSizeHeight'];
$FlatSizeWidth = $_REQUEST['FlatSizeWidth'];
$FlatSizeHeight = $_REQUEST['FlatSizeHeight'];
$CartonStyle = $_REQUEST['CartonStyle'];
$BoardCaliper = $_REQUEST['BoardCaliper'];
$BoardDescription = $_REQUEST['BoardDescription'];
$ColorsSpot = $_REQUEST['ColorsSpot'];
$ColorsProcess = $_REQUEST['ColorsProcess'];
$ColorsTotal = $_REQUEST['ColorsTotal'];
$CoatFinish = $_REQUEST['CoatFinish'];
$CoatFinish2 = $_REQUEST['CoatFinish2'];
$DieCutHolesNum = $_REQUEST['DieCutHolesNum'];
$DieCutHolesStrip = !empty($_REQUEST['DieCutHolesStrip']) ? 'Yes' : 'No';
$DieCutHolesPerf = !empty($_REQUEST['DieCutHolesPerf']) ? 'Yes' : 'No';
$GlueAreasNum = $_REQUEST['GlueAreasNum'];
$GlueAreasCheck = !empty($_REQUEST['GlueAreasCheck']) ? 'Yes' : 'No';
$GlueAreasSensor = !empty($_REQUEST['GlueAreasSensor']) ? 'Yes' : 'No';
$GlueAreasRFID = !empty($_REQUEST['GlueAreasRFID']) ? 'Yes' : 'No';
$WindowPatchWidth = $_REQUEST['WindowPatchWidth'];
$WindowPatchHeight = $_REQUEST['WindowPatchHeight'];
$SpecialtyFoil = !empty($_REQUEST['SpecialtyFoil']) ? 'Yes' : 'No';
$SpecialtyBoss = !empty($_REQUEST['SpecialtyBoss']) ? 'Yes' : 'No';
$SpecialtyBraille = !empty($_REQUEST['SpecialtyBraille']) ? 'Yes' : 'No';
$SpecialtyInserts = !empty($_REQUEST['SpecialtyInserts']) ? 'Yes' : 'No';
$ShipToZip = $_REQUEST['ShipToZip'];
$InnerDivider = !empty($_REQUEST['InnerDivider']) ? 'Yes' : 'No';
$MyTimezone = date_default_timezone_set('America/Los_Angeles');
$Body = "\n" ." \n" ."\n" ."\n"
."<span style=\"line-height:10px;\"> </span>\n"
."<table id=\"hor-zebra\">\n"
."<tr><td class=\"label\"><strong>Quote ID:</strong></td><td>".$QuoteID."</td></tr>\n"
."<tr class=\"odd\"><td class=\"label\"><strong>Name:</strong></td><td>".$Name."</td></tr>\n"
."<tr><td><strong>Company:</strong></td><td>".$Company."</td></tr>\n"
."<tr class=\"odd\"><td class=\"label\"><strong>Telephone:</strong></td><td>".$Telephone."</td></tr>\n"
."<tr><td class=\"label\"><strong>Email:</strong></td><td>".$Email."</td></tr>\n"
."<tr class=\"odd\"><td class=\"label\"><strong>Industry:</strong></td><td>".$Industry."</td></tr>\n"
."<tr><td class=\"label\"><strong>Combination:</strong></td><td>".$Combination."</td></tr>\n"
."<tr class=\"odd\"><td class=\"label\"><strong>Additional Notes:</strong></td><td>".$Message."</td></tr>\n"
."<tr><td class=\"label\"><strong>Upload Files:</strong></td><td>".$UploadFiles."</td></tr>\n"
."<tr class=\"odd\"><td class=\"label\"><strong>Project Name:</strong></td><td>".$ProjectName."</td></tr>\n"
."<tr><td class=\"label\"><strong>Quantity 1:</strong></td><td>".$Quantity1."</td></tr>\n"
."<tr class=\"odd\"><td class=\"label\"><strong>Quantity 2:</strong></td><td>".$Quantity2."</td></tr>\n"
."<tr><td class=\"label\"><strong>Quantity 3:</strong></td><td>".$Quantity3."</td></tr>\n"
."<tr class=\"odd\"><td class=\"label\"><strong>Quantity 4:</strong></td><td>".$Quantity4."</td></tr>\n"
."<tr><td class=\"label\"><strong>Carton Size Length:</strong></td><td>".$CartonSizeLength."</td></tr>\n"
."<tr class=\"odd\"><td class=\"label\"><strong>Carton Size Width:</strong></td><td>".$CartonSizeWidth."</td></tr>\n"
."<tr><td class=\"label\"><strong>Carton Size Height:</strong></td><td>".$CartonSizeHeight."</td></tr>\n"
."<tr class=\"odd\"><td class=\"label\"><strong>Flat Size Width:</strong></td><td>".$FlatSizeWidth."</td></tr>\n"
."<tr><td class=\"label\"><strong>Flat Size Height:</strong></td><td>".$FlatSizeHeight."</td></tr>\n"
."<tr class=\"odd\"><td class=\"label\"><strong>Carton Style:</strong></td><td>".$CartonStyle."</td></tr>\n"
."<tr><td class=\"label\"><strong>Inner Divider:</strong></td><td>".$InnerDivider."</td></tr>\n"
."<tr class=\"odd\"><td class=\"label\"><strong>Board Caliper:</strong></td><td>".$BoardCaliper."</td></tr>\n"
."<tr><td class=\"label\"><strong>Board Description:</strong></td><td>".$BoardDescription."</td></tr>\n"
."<tr class=\"odd\"><td class=\"label\"><strong>Colors Spot:</strong></td><td>".$ColorsSpot."</td></tr>\n"
."<tr><td class=\"label\"><strong>Colors Process:</strong></td><td>".$ColorsProcess."</td></tr>\n"
."<tr class=\"odd\"><td class=\"label\"><strong>Colors Total:</strong></td><td>".$ColorsTotal."</td></tr>\n"
."<tr><td class=\"label\"><strong>Coat Finish:</strong></td><td>".$CoatFinish."</td></tr>\n"
."<tr class=\"odd\"><td class=\"label\"><strong>Coat Finish 2:</strong></td><td>".$CoatFinish2."</td></tr>\n"
."<tr><td class=\"label\"><strong>Die Cut Holes Num:</strong></td><td>".$DieCutHolesNum."</td></tr>\n"
."<tr class=\"odd\"><td class=\"label\"><strong>Die Cut Holes Strip:</strong></td><td>".$DieCutHolesStrip."</td></tr>\n"
."<tr><td class=\"label\"><strong>Die Cut Holes Perf:</strong></td><td>".$DieCutHolesPerf."</td></tr>\n"
."<tr class=\"odd\"><td class=\"label\"><strong>Glue Areas Num:</strong></td><td>".$GlueAreasNum."</td></tr>\n"
."<tr><td class=\"label\"><strong>Glue Areas Check:</strong></td><td>".$GlueAreasCheck."</td></tr>\n"
."<tr class=\"odd\"><td class=\"label\"><strong>Glue Areas Sensor:</strong></td><td>".$GlueAreasSensor."</td></tr>\n"
."<tr><td class=\"label\"><strong>Glue Areas RFID:</strong></td><td>".$GlueAreasRFID."</td></tr>\n"
."<tr class=\"odd\"><td class=\"label\"><strong>Window Patch Width:</strong></td><td>".$WindowPatchWidth."</td></tr>\n"
."<tr><td class=\"label\"><strong>Window Patch Height:</strong></td><td>".$WindowPatchHeight."</td></tr>\n"
."<tr class=\"odd\"><td class=\"label\"><strong>Specialty Foil:</strong></td><td>".$SpecialtyFoil."</td></tr>\n"
."<tr><td class=\"label\"><strong>Specialty Boss:</strong></td><td>".$SpecialtyBoss."</td></tr>\n"
."<tr class=\"odd\"><td class=\"label\"><strong>Specialty Braille:</strong></td><td>".$SpecialtyBraille."</td></tr>\n"
."<tr><td class=\"label\"><strong>Specialty Inserts:</strong></td><td>".$SpecialtyInserts."</td></tr>\n"
."<tr class=\"odd\"><td class=\"label\"><strong>Ship To Zip:</strong></td><td>".$ShipToZip."</td></tr>\n"
."<tr><td class=\"label\"><strong>Date Expect Delivery:</strong></td><td>".$DateExpectDelivery."</td></tr>\n"
."<tr class=\"odd\"><td class=\"label\"><strong>Date of Submission:</strong></td><td>".date("Y-m-d H:i A e")."</td></tr>\n"
."</table>\n"
."<span style=\"line-height:30px;\"> </span>\n"
."</body></html>\n";
// 邮件1
// 多个收件人 $To = '逻辑估算小组';
// 主题 $Subject = '逻辑包装快速报价';
// 要发送 HTML 邮件,必须设置 Content-type 标头 $Headers = 'MIME 版本:1.0' 。 "\r\n"; $Headers .= '内容类型:文本/html;字符集=iso-8859-1' 。 "\r\n";
// 附加标题 $Headers .= '来自:LOGIC Estimating Team' 。 "\r\n"; $Headers .= '抄送:' 。 "\r\n"; $Headers .= '密件抄送:' 。 "\r\n";
// 邮寄 邮件($To, $Subject, $Body, $Headers);
// 邮件2
$Body = "\n" ." \n" ."\n" ."\n" ."我们成功收到您的报价请求。
\n" ." \n" ."\n" ."报价 ID:".$QuoteID."\n" ."姓名:".$Name."\n" ."公司:".$Company。"\n" ."电话:".$电话。"\n" ."电子邮件:".$Email。"\n" ."\n" ." \n" ."\n";// 多个收件人 $To = $电子邮件;
// 主题 $Subject = '逻辑包装快速报价';
// 要发送 HTML 邮件,必须设置 Content-type 标头 $Headers = 'MIME 版本:1.0' 。 "\r\n"; $Headers .= '内容类型:文本/html;字符集=iso-8859-1' 。 "\r\n";
// 附加标题 $Headers .= '来自:LOGIC Estimating Team' 。 "\r\n"; $Headers .= '抄送:' 。 "\r\n"; $Headers .= '密件抄送:' 。 "\r\n";
// 邮寄 邮件($To, $Subject, $Body, $Headers);
header("位置:http://www.logicpkg.com/quote_confirm.php?Name=" .urlencode($Name)); ?>
【问题讨论】:
您希望如何获得通知? 我的 PHP 脚本只是通过电子邮件发送字段数据。如果字段已上传,我只需要一个字段说明是或否。 这里是链接:logicpkg.com/quote.htm 添加代码时,最好不要放真实的URL,尽量取出识别信息。看来我现在可以使用该表单发送垃圾邮件了。 【参考方案1】:如果不更具体和/或发布您的代码,这很难回答。我的意思是,您的上传脚本当然有可能发出信号(例如,通过会话)或存储(例如,通过数据库)文件已上传的指示符,并且您的电子邮件脚本可以执行某些操作(例如附加文件) 与该信息。您还可以将文件作为 MIME 附件附加到电子邮件(我假设这就是您的意思)。谷歌“MIME_mail”。
如果我没有回答您的问题,请更详细地描述期望的结果。
【讨论】:
【参考方案2】:如果不看代码或不了解系统,很难说。但我假设 ajax 上传和发送电子邮件的表单发布是分开的。所以一个人真的不知道另一个人发生了什么。
你可以做的是给文件一个动态生成的密钥,所以它的名字类似于/uploads/abc123_thefile.zip
。然后在发布的表单上,您将有一个 id 字段,该字段与添加到文件名上的内容相同:
<input type=hidden name=key value='abc123'>
然后,当您在 php 脚本中获取 $_POST 数据时,您可以检查上传目录中是否有以 $_POST['key']
数据开头的文件。您可以说是或否,具体取决于该文件是否存在。您也可以在电子邮件中附加一些内容,但这超出了这里的范围。在堆栈溢出中搜索 php 邮件 mime 附件或类似的东西。
此外,您可以在 ajax 上传脚本完成后将该密钥存储在数据库或会话中,并检查它而不是将其附加到文件名上。有很多方法可以做到这一点。
【讨论】:
以上是关于PHP 表单通过电子邮件发送的结果。我需要捕获表单中的上传文件的主要内容,如果未能解决你的问题,请参考以下文章
如何使用HTML表单发送电子邮件并使用Node.js和Gulp提交?
来自 php 表单的问题/错误,用于使用 php-mailer 库通过本地主机 Xampp 发送电子邮件