【发布时间】:2016-11-05 16:43:20
【问题描述】:
我已经能够将 php 脚本(带有 HTML)写入 $_REQUEST 在线表单数据输入,并且要么 (1) 写入 CSV 文件并将其作为附件通过电子邮件发送,或 (2) 在任何电子邮件的正文中包含数据。
但我不能同时做这两件事。我希望将 CSV 快速导入数据库,并且我希望电子邮件正文也包含详细信息,以便运输部门有一个打包清单。如何让这两个功能同时工作而不会相互干扰?
提前谢谢你。
PHP 脚本
$to = "name@domain.com";
$subject = "Order - " . $_Tech_Name;
//Add the headers
$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
$headers = "MIME-Version: 1.0\n" .
"From: {$email_from}\n" .
"Content-Type: multipart/mixed;\n" .
" boundary=\"{$mime_boundary}\"";
// email body includes only fields not null
$body = "";
foreach ($_REQUEST as $Field=>$Value) {
if($Value != ''){
$body .= "$Field: $Value\n\n";
}
}
$email_body = "Here are the details: \n\n $body";
// csv file name format
$today = date("m.d.y");
$csv_name = "order - " . $_Tech_Name . " " . $today . ".csv";
$fp = fopen($csv_name,'a');
fwrite($fp,$data);
fclose($fp);
$attachments[] = Array(
'data' => $data,
'name' => $csv_name,
'type' => 'application/vnd.ms-excel'
);
//Add sttachments
foreach($attachments as $attachment){
$data = chunk_split(base64_encode($attachment['data']));
$name = $attachment['name'];
$type = $attachment['type'];
$message .=
"--{$mime_boundary}\n" .
"Content-Type: {$type};\n" .
" name=\"{$name}\"\n" .
"Content-Transfer-Encoding: base64\n\n" .
$data . "\n\n" ;
}
**PHP SCRIPT - 我已经用以下附加脚本隔离了问题,该脚本是上面显示的脚本的一部分,但我还不明白为什么会出现问题。通过注释掉 $message (附件)或 $email_body (仅正文),我可以让其中一个或另一个工作。但是如果我把两个变量都留在那里,那么它们都不起作用**
mail(
$to,
$subject,
$message, // for attachment only
// $email_body, // for body only
$headers
);
【问题讨论】:
标签: php