如何上传和通过电子邮件发送网络表单中的文件?

时间:2011-06-20 20:59:32

标签: php mysql html

我正在尝试创建一个RMA表单,除了上传+电子邮件附件外,我还能正常工作。

我要做的是让客户上传他们文档的扫描副本(以jpeg,gif,png,pdf,word等格式),但我似乎无法开展工作。我正在使用各种文件上传方法,但我似乎无法弄清楚从哪里开始。

这是我到目前为止的PHP代码

$name=$_POST['first'] ." ".$_POST['last'];
$email=$_POST['email'];
$address=$_POST['street'] ." ". $_POST['city'] ."".$_POST['province'] ." ".$_POST['postal'];
$pod=$_POST['pod'];
$sku=$_POST['sku'];
$description=$_POST['description'];
$problem=$_POST['problem'];
$case_id=$_POST['case_id'];
$status=$_POST['status'];
$phone=$_POST['parea'] ."".$_POST['pfirst'] ."".$_POST['plast'];
$tracking=$_POST['tracking'];
$date=$_POST['date'];

$link = mysql_connect('m', 'sk', 's1'); 

if (!$link) 
{

die('Could not connect: ' . mysql_error()); 
}

mysql_select_db(s);
$status = "Pending";
$tracking = "";
$date = date('c');
$case_id = mt_rand(1252,10000);

while( $fetch = mysql_fetch_array( mysql_query("SELECT `case_id` FROM `webform` WHERE `case_id` = $case_id") ) )
{
$case_id = mt_rand(1252,10000);
}
//$error[] = preg_match('/\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b/i', $_POST['email']) ? '' : 'INVALID EMAIL ADDRESS';
if(!eregi("^[a-z0-9]+([_\\.-][a-z0-9]+)*" ."@"."([a-z0-9]+([\.-][a-z0-9]+)*)+"."\\.[a-z]{2,}"."$",$email )){
$error.="Invalid email address entered";
$errors=1;
}
if($errors==1) echo $error;
else{
$values = array ($name,$phone,$email,$address,$pod,$sku,$description,$problem);
$required = array($name,$phone,$email,$address,$pod,$sku,$description,$problem);

$your_email = "fahad@home.com";
$email_subject = "RMA: ".$case_id;
$email_content = "new message:\n";

foreach($values as $key => $value){
  if(in_array($value,$required)){
    if ($key != $phone && $key != $address) 
    $email_content .= $value.' '.$_POST[$value]."\n";
  }
}

if(@mail($your_email,$email_subject,$email_content,$case_id)) {
    echo 'Request Submitted!<br />';
    echo 'RMA:'. $case_id; 
} else {
    echo 'ERROR!';

}

}

$queries = array ($values, $case_id);
$piece = implode(",",$queries);
mysql_query("INSERT INTO `webform` (`case_id`, `name`, `phone`, `email`, `address`, `pod`, `sku`, `description`, `problem`, `status`, `tracking`, `date_recieved`) VALUES ('$case_id', '$name', '$phone', '$email', '$address', '$pod', '$sku','$description', '$problem', '$status', '$tracking', '$date')")

or die(mysql_error());
mysql_close($link);


?>

所以基本上,我不确定文件上传部分的位置,甚至不知道如何使用它。我有一个工作的html设计,它会调出文件浏览器和所有内容,我只是不知道如何将该过程链接到php端,然后在上传后将其附加到电子邮件中。

请提前感谢大家的帮助!

2 个答案:

答案 0 :(得分:1)

我不会。

我公司每月发送数百万封电子邮件,电子邮件附件是我们遇到的最大问题。最重要的是,你附加的东西,你提出了被阻止或标记为垃圾邮件的可能性。

发送链接。在该人可以单击以启动下载的链接中使用唯一的哈希标识符。它可以实现更小的电子邮件,更多垃圾邮件友好的交付,更轻松的编码,以及更快乐的客户。

答案 1 :(得分:0)

我完全使用它,它对我很有帮助。

http://formtoemail.com/