Php 表格至邮件附件

Php 表格至邮件附件,php,forms,attachment,Php,Forms,Attachment,我正试图邮寄一份带有附件图片的表格。 但我不能让它工作。 我想我已经尝试了几乎所有的方法,除了一件能让它起作用的事情: 搜索所有谷歌和youtube 我知道了,但没有任何用户名或城市 谁能帮帮我吗。 不知道我做错了什么或错过了什么 <?php if(isset($_POST['terms'])){ $email_to = "mail@mail.com"; $email_subject = "Subject"; $user = $_POST['user']; // require

我正试图邮寄一份带有附件图片的表格。 但我不能让它工作。 我想我已经尝试了几乎所有的方法,除了一件能让它起作用的事情: 搜索所有谷歌和youtube

我知道了,但没有任何用户名或城市

谁能帮帮我吗。 不知道我做错了什么或错过了什么

<?php
if(isset($_POST['terms'])){
  $email_to = "mail@mail.com";
  $email_subject = "Subject";
  $user = $_POST['user']; // required
  $city = $_POST['city']; // required

  /*********Creating Uniqid Session*******/

  $txtSid = md5(uniqid(time()));

  $headers = "";
  $headers .= "From: ".$_POST["fieldFormName"]."<".$_POST["fieldFormEmail"].">\nReply-To: ".$_POST["fieldFormEmail"]."";

  $headers .= "MIME-Version: 1.0\n";
  $headers .= "Content-Type: multipart/mixed; boundary=\"".$txtSid."\"\n\n";
  $headers .= "This is a multi-part message in MIME format.\n";

  $headers .= "--".$txtSid."\n";
  $headers .= "Content-type: text/html; charset=utf-8\n";
  $headers .= "Content-Transfer-Encoding: 7bit\n\n";
  $headers .= $email_message."\n\n";

  /***********Email Attachment************/
  if($_FILES["attachment"]["name"] != "")
  {
    $txtFilesName = $_FILES["attachment"]["name"];
    $txtContent = chunk_split(base64_encode(file_get_contents($_FILES["attachment"]["tmp_name"]))); 
    $headers .= "--".$txtSid."\n";
    $headers .= "Content-Type: application/octet-stream; name=\"".$txtFilesName."\"\n"; 
    $headers .= "Content-Transfer-Encoding: base64\n";
    $headers .= "Content-Disposition: attachment; filename=\"".$txtFilesName."\"\n\n";
    $headers .= $txtContent."\n\n";
  }


  $email_message = "Message.\n\n";

  function clean_string($string) {
    $bad = array("content-type","bcc:","to:","cc:","href");
    return str_replace($bad,"",$string);
  }

  $email_message .= "User: ".clean_string($user)."\n";
  $email_message .= "City: ".clean_string($city)."\n";

  // Send
  @mail($email_to, $email_subject, $email_message, $headers); 
}else{
  echo "You need to accept our terms";
}
?>

看一看PHPMailer,它比创建自己的html/标题等更容易使用。

我在github上遵循一个简单的示例。继续获取此错误:无法发送邮件。邮件程序错误:SMTP连接失败。但是电子邮件正在发送到邮件。。。SMPT信息是正确的。。从我的服务器支持中获取。有什么想法吗?要么用一些新代码更新你的问题,要么开始一个新问题。SMTP连接错误向我提出了一个问题,即您的SMTP服务器不正确。。也许还可以提供您的支持团队提供的详细信息。我在这里发布了一个新问题,代码是:谢谢。