php
  • mysql
  • 2012-08-03 136 views 1 likes 
    1

    這是我的代碼如下。當我點擊「發送電子郵件」按鈕時,它工作正常。但它不會顯示在我的收件箱中......它被路由到垃圾郵件文件夾。爲什麼我的php電子郵件腳本不會在我的收件箱中發送電子郵件給我的垃圾郵件?

    <?php require_once "../session.php" ?> 
    <?php 
    $host='localhost'; // My hostname 
    $username='root'; // Mysql username 
    $password='*********'; // Mysql password 
    $db_name='jobs'; // DB name 
    
    mysql_connect($host, $username, $password)or die("Cannot Connect"); 
    mysql_select_db($db_name); 
    if (isset($_POST['action']) && $_POST['action'] == "SEND CV NOW") { 
    $firstname = $_POST['firstname']; 
    $surname = $_POST['lastname']; 
    $email = $_POST['email']; 
    
    $sql = "SELECT JobTitle,JobID FROM tblebjobs WHERE ID='".$_GET['id']."'"; 
    $result = mysql_query($sql) or die ("Could not insert data into DB: " . mysql_error()); 
    if (!$result) { 
         die('Invalid query: ' . mysql_error() . '<br />'. $insertstatement); 
    } 
    $details = mysql_fetch_row($result); 
    
    //upload cv first 
         if(!isset($_FILES['cv'])) { 
          $err = "You forgot to select a CV to upload"; 
         }  
         $cvname = basename(stripslashes($_FILES['cv']['name'])); 
    
         if(empty($cvname)){ 
          $err = "The name of the attachment was not found."; 
         } 
    
         if(empty($err)){ 
          $newcv = "tempcv/".$cvname; 
          $result = @move_uploaded_file($_FILES['cv']['tmp_name'], $newcv); 
           if(empty($result)){ 
            $err = "There was an error moving the uploaded cv please try again if it continues to file please call us directly."; 
           } else { 
            //increment by 1 
            $sql3 = "update `emp_record` set `total_app`=`total_app` + 1 WHERE username='".$_SESSION['name']."'"; 
            $result3 = mysql_query($sql3) or die ("Could not insert data into DB: " . mysql_error()); 
            $sql2 = "update `tblebjobs` set `total_app`=`total_app` + 1 WHERE ID='".$_GET['id']."'"; 
            $result2 = mysql_query($sql2) or die ("Could not insert data into DB: " . mysql_error()); 
    
            //create random for boundry 
            $random_hash = md5(date('r', time())); 
            //set email headers 
            $headers = "Return-path: <".$email.">"."\r\n"; 
            $headers .= "Reply-to: <".$email.""."\r\n"; 
            $headers .= "Content-Type: multipart/mixed; boundary=\"PHP-mixed-".$random_hash."\"\r\n"; 
            $headers .= "From: ".$email." <".$email.">"."\r\n"; 
            $headers .= "X-Priority: 3\r\n"; 
            $headers .= "X-Mailer: E-borders.net web site\r\n"; 
            $headers .= "MIME-Version: 1.0\r\n"; 
            $headers .= "\r\n\r\n"; 
            //setup message and include $body previously prepped 
            $prebody = "--PHP-mixed-{$random_hash}\r\n"; 
            $prebody .="Content-Type: text/html; charset=\"iso-8859-1\"\r\n"; 
            $prebody .="Content-Transfer-Encoding: 7bit\r\n"; 
            $prebody .="\r\n"; 
            $prebody .="A CV has been submitted from the website the CV is attached to this email and the details of the form submission are below.<br /><br />"; 
            $prebody .="{$firstname} {$surname}<br />"; 
            $prebody .="{$email}<br />"; 
            $prebody .="\r\n"; 
            $prebody .="--PHP-mixed-{$random_hash}\r\n"; 
           // prep attachments 
            $data = chunk_split(base64_encode(file_get_contents($newcv))); 
            $prebody .= "Content-Type: application/pdf; name=\"{$newcv}\"\r\n"; 
            $prebody .= "Content-Disposition: attachment; filename=\"{$newcv}\"\r\n"; 
            $prebody .= "Content-Transfer-Encoding: base64\r\n\r\n"; 
            $prebody .= "{$data}\r\n\r\n"; 
            $prebody .= "--PHP-mixed-{$random_hash}\r\n"; 
            $prebody .= "\r\n";  
            //set to address 
            $to = '[email protected]'; 
            //set subject 
            $subject = "CV FROM: {$details[0]} ({$details[1]})"; 
            // Mail it 
            mail($to, $subject, $prebody, $headers); 
            unlink($newcv); 
            $err = "Your CV has been submitted we will be in touch shortly"; 
           } 
         } 
    } 
    ?> 
    
    <u><strong>Apply Online</strong></u> 
    <?php if (isset($err)) { 
        echo "<div style=\"text-align:center;color:red;font-weight:bold;\">$err</div>"; 
    }?> 
    <p> 
    <form method="POST" action="apply.php?id=<?php echo $_GET['id'];?>" enctype="multipart/form-data"> 
    <table border="0" cellpadding="5" cellspacing="0" align="center"> 
    <tr><td>First name:</td><td><input type="text" name="firstname" id="firstname"></td></tr> 
    <tr><td>Last name:</td><td><input type="text" name="lastname" id+"lastname"></td></tr> 
    <tr><td>Email Address:</td><td><input type="text" name="email" id="email"></td></tr> 
    <tr><td>Path to CV:</td><td><input type="file" name="cv" id="cv" /></td></tr> 
    </table> 
    <p align=center> 
    <input type="submit" name="action" id="action" value="SEND CV NOW"> 
    </p> 
    </form> 
    </p> 
    </div> 
    

    另外...我有簡歷附件在這裏。但該文件並未添加到消息中。

    +1

    取決於您的電子郵件提供商認爲是垃圾郵件。它認爲電子郵件並非來自您所說的地址(發件人地址可能與其發送的服務器不同),並認爲其垃圾郵件。 – sachleen 2012-08-03 03:00:53

    +1

    是從一個真實的電子郵件地址的電子郵件地址?你有沒有爲你的域名設置MX記錄? – denil 2012-08-03 03:02:10

    +1

    '$ username ='root'',呃? – msanford 2012-08-03 03:07:05

    回答

    1

    它與您的電子郵件的內容有關(無論是在正文中,還是在標題中)。不是實際的PHP代碼本身。

    垃圾郵件過濾器以不同的方式工作,所以不可能爲您提供特定的解決方案。

    注意:請嘗試使用類似http://swiftmailer.org/的郵件組件發送您的電子郵件,而不是用大字符串構造它們。

    +0

    好吧,謝謝你的信息.. – 2012-08-03 03:04:46

    +0

    +1垃圾郵件檢測是如此複雜,以確保您的電子郵件不會被標記爲垃圾郵件可能很容易成爲主題整本書的內容(見FAQ)。 – msanford 2012-08-03 03:06:39

    相關問題