2013-09-26 151 views
2

我有一个脚本可以识别关卡,并且如果我已经通过了代码,我已经添加了一些提示以告诉我。这两个电子邮件地址是反映。我想单独发送两封电子邮件,但收件箱不工作。我检查了我的垃圾邮件。邮件不工作,不发送两封电子邮件

有什么,我失踪了吗?

function emaillog($to,$id,$subject,$message){ 
include("dbconnect.php"); 
mysql_query("INSERT INTO emlog(mm,tt,ss,rr) VALUES('$message','$to','$subject','$id')"); 


} 
if($level == 1){ 
    $assignedtowho_email_result = mysql_query("SELECT Email FROM sheet1 WHERE id IN(SELECT assignedtowho FROM tbl_one WHERE id =$id)"); 

    while($row_email=mysql_fetch_array($assignedtowho_email_result)){ 
     $assignedtowho_email=$row_email['Email']; 
    } 

    // Email Sending department 
    $to = $senderEmail; 
    $subject = "Refferal status updated by recieving r"; 
    $message = "Your status has been updated by "; 
    $from = "[email protected]"; 
    $headers = "From:" . $from; 
    mail($to,$subject,$message,$headers); 
    emaillog($to,$id,$subject,$message); 
    $message_alert="Sender mail sent: ".$to; 
    echo '<script>alert("'.$message_alert.'")</script>'; 
    //echo "Mail Sent."; 

    // Email Recieving department 
    $to = $assignedtowho_email; 
    $subject = "Refferal status updated "; 
    $message = "Your refferal status has been updated"; 
    $from = "[email protected]"; 
    $headers = "From:" . $from; 
    mail($to,$subject,$message,$headers); 
    emaillog($to,$id,$subject,$message); 
    $message_alert_2="Assigned mail sent: ".$to; 
    echo '<script>alert("'.$message_alert_2.'")</script>'; 
    //echo "Mail Sent."; 
} 
+0

使用SMTP,你就用这个应该可以。 – Aristona

+2

而不是使用邮件(...直接使用$ mailResult = mail(....然后检查$ mailResult是true还是false,如果它是真的,它不是php失败,但邮件服务器,也许你没有端口25(或定义的)打开或类似的东西 – aleation

+0

检查你的smtp设置 –

回答

0

要求

对于可用邮件功能,PHP必须在编译时访问系统上的sendmail程序。如果您使用其他邮件程序,例如qmail或postfix,请务必使用随附的相应sendmail包装。 PHP将首先在您的PATH中查找sendmail,然后在以下位置查找:/ usr/bin:/ usr/sbin:/ usr/etc:/ etc:/ usr/ucblib:/ usr/lib。强烈建议您从PATH获得sendmail。另外,编译PHP的用户必须具有访问sendmail二进制文件的权限。

http://tr2.php.net/manual/en/mail.requirements.php

要确保你有所有要求和SMTP服务器。

因此,mail()函数的道具。可以改变取决于你的操作系统和PHP版本

你可以看到这一切[这里] [1]

在更新日志侧

上。

如果您使用Windows,则必须使用PEAR Mail。这是here

对于Linux操作系统,如Ubuntu和Centos的,你必须确保配置的php.ini和Apache /的httpd.ini

你每天OS

<?php # Is the OS Windows or Mac or Linux 
if (strtoupper(substr(PHP_OS,0,3)=='WIN')) { 
    $eol="\r\n"; 
} elseif (strtoupper(substr(PHP_OS,0,3)=='MAC')) { 
    $eol="\r"; 
} else { 
    $eol="\n"; 
} ?> 

<?php 
# File for Attachment 
$f_name="../../letters/".$letter; // use relative path OR ELSE big headaches. $letter is my file for attaching. 
$handle=fopen($f_name, 'rb'); 
$f_contents=fread($handle, filesize($f_name)); 
$f_contents=chunk_split(base64_encode($f_contents)); //Encode The Data For Transition using base64_encode(); 
$f_type=filetype($f_name); 
fclose($handle); 
# To Email Address 
$emailaddress="[email protected]"; 
# Message Subject 
$emailsubject="Heres An Email with a PDF".date("Y/m/d H:i:s"); 
# Message Body 
ob_start(); 
    require("emailbody.php");  // i made a simple & pretty page for showing in the email 
$body=ob_get_contents(); ob_end_clean(); 

# Common Headers 
$headers .= 'From: Jonny <[email protected]>'.$eol; 
$headers .= 'Reply-To: Jonny <[email protected]>'.$eol; 
$headers .= 'Return-Path: Jonny <[email protected]>'.$eol;  // these two to set reply address 
$headers .= "Message-ID:<".$now." [email protected]".$_SERVER['SERVER_NAME'].">".$eol; 
$headers .= "X-Mailer: PHP v".phpversion().$eol;   // These two to help avoid spam-filters 
# Boundry for marking the split & Multitype Headers 
$mime_boundary=md5(time()); 
$headers .= 'MIME-Version: 1.0'.$eol; 
$headers .= "Content-Type: multipart/related; boundary=\"".$mime_boundary."\"".$eol; 
$msg = ""; 

# Attachment 
$msg .= "--".$mime_boundary.$eol; 
$msg .= "Content-Type: application/pdf; name=\"".$letter."\"".$eol; // sometimes i have to send MS Word, use 'msword' instead of 'pdf' 
$msg .= "Content-Transfer-Encoding: base64".$eol; 
$msg .= "Content-Disposition: attachment; filename=\"".$letter."\"".$eol.$eol; // !! This line needs TWO end of lines !! IMPORTANT !! 
$msg .= $f_contents.$eol.$eol; 
# Setup for text OR html 
$msg .= "Content-Type: multipart/alternative".$eol; 

# Text Version 
$msg .= "--".$mime_boundary.$eol; 
$msg .= "Content-Type: text/plain; charset=iso-8859-1".$eol; 
$msg .= "Content-Transfer-Encoding: 8bit".$eol; 
$msg .= "This is a multi-part message in MIME format.".$eol; 
$msg .= "If you are reading this, please update your email-reading-software.".$eol; 
$msg .= "+ + Text Only Email from Genius Jon + +".$eol.$eol; 

# HTML Version 
$msg .= "--".$mime_boundary.$eol; 
$msg .= "Content-Type: text/html; charset=iso-8859-1".$eol; 
$msg .= "Content-Transfer-Encoding: 8bit".$eol; 
$msg .= $body.$eol.$eol; 

# Finished 
$msg .= "--".$mime_boundary."--".$eol.$eol; // finish with two eol's for better security. see Injection. 

# SEND THE EMAIL 
ini_set(sendmail_from,'[email protected]'); // the INI lines are to force the From Address to be used ! 
    mail($emailaddress, $emailsubject, $msg, $headers); 
ini_restore(sendmail_from); 
?>