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;\">&nbsp;</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;\">&nbsp;</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 表单通过电子邮件发送的结果。我需要捕获表单中的上传文件的主要内容,如果未能解决你的问题,请参考以下文章

如何捕获表单值并通过电子邮件作为 ajax 请求发送?导轨

如何使用HTML表单发送电子邮件并使用Node.js和Gulp提交?

php 表单不发送提交数据。但是仍然发送电子邮件和处理表格

来自 php 表单的问题/错误,用于使用 php-mailer 库通过本地主机 Xampp 发送电子邮件

通过电子邮件发送带有 PHP 和 HTML 错误消息“Cannot POST mail.php”的表单

通过一次提交发送双表单,同时将电子邮件字段从第一个表单拉到第二个表单