2013-04-23 130 views
0

使用PHP,我在我的Gmail和mailserver id(公司电子邮件ID)上发送电子邮件附件。我在我的电子邮件帐户中收到了电子邮件,但在我的公司电子邮件ID上收到了我的电子邮件附件中的电子邮件,显示错误(无法正常打开),而在Gmail中则没有问题。 任何想法或建议? 我在这里粘贴我的php代码。任何帮助将不胜感激。电子邮件附件在gmail中正常工作,但在我的邮件服务器上没有问题

HTML代码:

<form action="contact.php" method="post" name="form1" enctype="multipart/form-data"> 
    <label for="file">Filename:</label> 
    <input type="file" name="fileAttach" id="file"><br><br> 
    <input type="submit" name="submit" value="Submit" align="right"> 
    </form> 

contact.php:

    <?php 
       if($_POST['submit']) 
       { 

      $strTo = "[email protected], [email protected]"; 
      $strSubject = "Attachment file"; 
      $strMessage = "Attachment"; 
       $txtFormEmail = "[email protected]"; 

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

$strHeader = ""; 
$strHeader .= "From: "."<".$txtFormEmail.">\nReply-To: ".$txtFormEmail.""; 

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

$strHeader .= "--".$strSid."\n"; 
$strHeader .= "Content-type: text/html; charset=utf-8\n"; 
$strHeader .= "Content-Transfer-Encoding: 7bit\n\n"; 
$strHeader .= $strMessage."\n\n"; 

//*** Attachment ***// 
    if($_FILES["fileAttach"]["name"] != "") 
    { 
     $strFilesName = $_FILES["fileAttach"]["name"]; 
     $strContent = chunk_split(base64_encode(file_get_contents($_FILES["fileAttach"]["tmp_name"]))); 
    $strHeader .= "--".$strSid."\n"; 
    $strHeader .= "Content-Type: application/octet-stream; name=\"".$strFilesName."\"\n"; 
    $strHeader .= "Content-Transfer-Encoding: base64\n"; 
    $strHeader .= "Content-Disposition: attachment; filename=\"".$strFilesName."\"\n\n"; 
    $strHeader .= $strContent."\n\n"; 
} 


$flgSend = mail($strTo,$strSubject,$strMessage,$strHeader); 


    } 
    ?> 

回答

0

您可以使用PHP邮件器类带附件发送邮件。

+1

非常感谢RavK – Ganesh 2015-10-14 10:23:33

相关问题