doufuhao0566 2016-05-11 21:20 采纳率: 100%
浏览 65

PHPMailer发送电子邮件但没有附件

I tried this code and i do receive emails but the attachments are missing. Any help is appreciated

<?php

require('PHPMailer/PHPMailerAutoload.php');

if(isset($_POST['email'])) {

// EDIT THE 2 LINES BELOW AS REQUIRED
/ / $email_to = "this email";
//$email_subject = "Request for Portfolio check up from ".$first_name." ".$last_name;

$title = array('Title', 'Mr.', 'Ms.', 'Mrs.');
$selected_key = $_POST['title'];
$selected_val = $title[$_POST['title']]; 

$first_name = $_POST['first_name']; // required
$last_name = $_POST['last_name']; // required
$email_from = $_POST['email']; // required
$telephone = $_POST['telephone']; // not required
$comments = $_POST['comments']; // required

if(($selected_key==0))
echo "<script> alert('Please enter your title')</script>";
function clean_string($string) {
  $bad = array("content-type","bcc:","to:","cc:","href");
  return str_replace($bad,"",$string);
}
 $email_message = "";
$email_message .="Title: ".$selected_val."
";
$email_message .= "First Name: ".clean_string($first_name)."
";
$email_message .= "Last Name: ".clean_string($last_name)."
";
$email_message .= "Email: ".clean_string($email_from)."
";
$email_message .= "Telephone: ".clean_string($telephone)."
";
$email_message .= "Comments: ".clean_string($comments)."
";

$allowedExts = array("doc", "jpg", "docx", "xls", "xlsx", "pdf");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);
if ((($_FILES["file"]["type"] == "application/pdf")
|| ($_FILES["file"]["type"] == "application/msword")
|| ($_FILES["file"]["type"] == "application/excel")
|| ($_FILES["file"]["type"] == "application/vnd.ms-excel")
|| ($_FILES["file"]["type"] == "application/x-excel")
 || ($_FILES["file"]["type"] == "application/x-msexcel")
|| ($_FILES["file"]["type"] == "application/vnd.openxmlformats-      officedocument.wordprocessingml.document")
 || ($_FILES["file"]["type"] == "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"))

  && in_array($extension, $allowedExts))
{
   if ($_FILES["file"]["error"] > 0)
{
echo "<script>alert('Error: " . $_FILES["file"]["error"] ."')</script>";
}
else
{
    $d='upload/';
    $de=$d . basename($_FILES['file']['name']);
move_uploaded_file($_FILES["file"]["tmp_name"], $de);
$fileName = $_FILES['file']['name'];
$filePath = $_FILES['file']['tmp_name'];
 //add only if the file is an upload
 }
}
 else
{
echo "<script>alert('Invalid file')</script>";
}

// create email headers
$headers = 'From: '.$email_from."
".
'Reply-To: '.$email_from."
" .
'X-Mailer: PHP/' . phpversion();
//Create a new PHPMailer instance
$mail = new PHPMailer();
$body = 'hi';
//Tell PHPMailer to use SMTP
$mail->IsSMTP();
 //Enable SMTP debugging
 // 0 = off (for production use)
 // 1 = client messages
 // 2 = client and server messages
 $mail->Host = 'smtp.gmail.com'; 
 $mail->SMTPDebug  = 2;
 $mail->isHTML(true);
 //Ask for HTML-friendly debug output
 $mail->Debugoutput = 'html';
 //Set the hostname of the mail server
 $mail->Host       = "smtp.gmail.com";
 $mail->Port       = 587;
 //Whether to use SMTP authentication
 $mail->SMTPAuth   = true;
 //Username to use for SMTP authentication
 $mail->Username   = "myemail";
 //Password to use for SMTP authentication
 $mail->SMTPAuth ='tls';
 $mail->Password   = "mypass";
 //Set who the message is to be sent from
 $mail->SetFrom($email_from, $first_name.' '.$last_name);
 //Set an alternative reply-to address
 //$mail->AddReplyTo('replyto@example.com','First Last');
 //Set who the message is to be sent to
 $mail->AddAddress('hidden', 'hidden');
 //Set the subject line
 $mail->Subject = 'Request for Profile Check up'; 
 //Read an HTML message body from an external file, convert referenced
 $mail->Body =$body;
 $mail->AltBody = 'This is a plain-text message body';
 //$mail->AddAttachment($_file);
  $mail->AddAttachment($_FILES['file']['tmp_name'], $_FILES['file']['name']);
  if(!$mail->Send()) {
 echo "<script>alert('Mailer Error: " . $mail->ErrorInfo."')</script>";
} else {
  echo "<script>alert('Your request has been submitted. We will contact you   soon.')</script>";
   Header('Location: main.php');
 }
  }
 ?>

i changed the $body to $Body and nothing changed. I receive the email, but no attachment. I cant seem to know where the error is, but I double-checked the attachment part and it was similar to all others who said it was working for them.

This is my form

<!DOCTYPE html>
<html>
<head>
    <title>Send</title>
</head>
<body>
<form name="contactform" method="post" action="send.php" enctype="multipart/form-data">
<table width="100%" border="0">
<tr>
 <td id="ta">
 <label for="title">Title *</label>
 </td>
 <td id="ta">
 <select name="title">
 <option value="0">Title</option>
 <option value="1">Mr.</option>
 <option value="2">Ms.</option>
 <option value="3">Mrs.</option>
 </select></td></tr><tr><td id="ta">
  <label for="first_name">First Name *</label>
 </td>
 <td id="ta">
  <input  type="text" name="first_name" maxlength="50" size="30" required="required">
 </td>
</tr>
<tr>
 <td id="ta">
  <label for="last_name">Last Name *</label>
 </td>
 <td  id="ta">
  <input  type="text" name="last_name" maxlength="50" size="30" required="required">
 </td>
</tr>
<tr>
 <td id="ta">
  <label for="email">Email Address *</label>
 </td>
 <td  id="ta">
  <input  type="text" name="email" maxlength="80" size="30" required="required">
 </td>
</tr>
<tr>
 <td id="ta">
  <label for="telephone">Telephone Number *</label>
 </td>
 <td  id="ta">
  <input  type="text" name="telephone" maxlength="30" size="30" required="required">
 </td>
</tr>
<tr>
 <td id="ta">
  <label for="comments">Details</label>
 </td>
 <td  id="ta">
  <textarea  name="comments" maxlength="100000" cols="25" rows="6"></textarea>
 </td>
</tr>
<tr>
<td id="ta">
    <label for="file">Or upload a file (only word, excel or pdf)</label>
</td>
<td  id="ta">
<input type="file" name="file">
</td>
</tr>
<tr>
 <td colspan="2" style="text-align:center" id="ta">
  <input type="submit" value="Submit">
 </td>
</tr>
</table>
</form>
</body>
</html>

enter code here
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
    • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
    • ¥15 手机接入宽带网线,如何释放宽带全部速度
    • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
    • ¥15 ETLCloud 处理json多层级问题
    • ¥15 matlab中使用gurobi时报错
    • ¥15 这个主板怎么能扩出一两个sata口
    • ¥15 不是,这到底错哪儿了😭
    • ¥15 2020长安杯与连接网探
    • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么