附件间歇工作

时间:2015-02-09 21:47:45

标签: php phpmailer

我的phpMailer脚本出现问题。我可以从脚本发送电子邮件,我甚至可以从脚本发送附件。但是,它只适用于某些情况而不是其他情况。我尝试更换服务器,我有同样的问题所以我假设这是一个编码问题。

当它不起作用时,电子邮件仍然彻底,但它从任何附件中删除。

附件肯定会在同一位置的服务器上运行,然后会向此脚本发送一组附件,然后将其添加到邮件中。

在一个实例中,相同的代码和相同的文件将发送而不发送!很混乱!通常有些人会发送一段时间,然后有些人会暂时不会发送。

以下是代码:

<?php
include('connection.php');

require_once('PHPMailer/PHPMailerAutoload.php');

class Mailer extends PHPMailer {

    public function copyToFolder($folderPath) {
        $message = $this->MIMEHeader . $this->MIMEBody;
        $path = "INBOX" . (isset($folderPath) && !is_null($folderPath) ? ".".$folderPath : ""); // Location to save the email

        $imapStream = imap_open("{mail.server.com:143/novalidate-cert}" . $path , $this->Username, $this->Password) or die(mysql_error());

        imap_append($imapStream, "{mail.server.com:143/novalidate-cert}" . $path, $message)or die(mysql_error());

        }
        imap_close($imapStream);
    }
}

$from = $_POST['from'];
$username = $from; 

$grabPassword = mysql_query("SELECT * FROM `email_pw_db` WHERE `emailaddress` = '$from'");
$fetchPassword = mysql_fetch_assoc($grabPassword);
$password = $fetchPassword['password'];

$company = $_POST['to'];
$toemail = $_POST['toemail'];
$from = $username;
$namefrom = $_POST['from'];
$subject = $_POST['subject'];
$cc = trim($_POST['cc']);
$bcc = trim($_POST['bcc']);
$message = $_POST['body'];;
$attachments = $_POST['attachments'];



$mail = new Mailer();

$body = $message;
/*Create a new email*/
$mail = new Mailer();
$mail->isSMTP();
$mail->Host = 'mail.server.com';
$mail->Username = $username;
$mail->Password = $password;
$mail->From = $from;
$mail->AddReplyTo($from,$namefrom);
$mail->SMTPKeepAlive = true; // SMTP connection will not close after each email sent, reduces SMTP overhead
$mail->SetFrom($from, $namefrom);

$mail->AddReplyTo($from,$namefrom);

$address = $toemail;
$mail->AddAddress($address, $company);

$mail->Subject    = $subject;

$mail->AltBody    = "To view the message, please use an HTML compatible email viewer!"; 

$mail->MsgHTML($body);
if($cc!=''){
$mail->addCC($cc);
}

//CC EMAILS//
$breakOutCC = explode(',', $cc);

$countBreakOut = count($breakOutCC);
$i = 0; 
while($i <$countBreakOut)
{
$mail->addCC($breakOutCC[$i]);

$i++;
}

$breakOutBCC = explode(',', $bcc);

$countBreakOutBCC = count($breakOutBCC); 

$i = 0;

while($i <$countBreakOutBCC)
{

$mail->addBCC($breakOutBCC[$i]);

$i++;
}

$breakoutAttachments = explode(',', $attachments);
$countAttachments = count($breakoutAttachments); 
$i = 0; 

while($i <$countAttachments)
{
$mail->AddAttachment("attachments/email_attachments/".$breakoutAttachments[$i]);      

$i++;
}

if(!$mail->Send()) {
  echo "Mailer Error: " . $mail->ErrorInfo;
  $errorMessage = $mail->ErrorInfo; 
  header( 'Location: email-software.php?dialog=Whoops Something Happened- '.$errorMessage ) ;
} else {
    //$mail->copyToFolder(); //save email

$mail->copyToFolder("Sent"); // Will save into Sent folder
$attachments = $_POST['attachments'];

$breakoutAttachments = explode(',', $attachments);

$countAttachments = count($breakoutAttachments); 

$i = 0; 

while($i <$countAttachments)
{
unlink("attachments/email_attachments/".$breakoutAttachments[$i]);    

$i++;
}


 header( 'Location: email-software.php?dialog=email sent' ) ;
}

?>

0 个答案:

没有答案