如何使phpmailer代码更简单,它用于发送2个邮件

时间:2013-11-24 14:31:25

标签: php

我有php代码使用phpmailer向两个用户发送两个不同的消息。我已经复制了两次代码以发送两封邮件,但这使得该过程需要很长时间才能完成任务。是否有任何解决方案使我的代码更简单

//// --------------------发送电子邮件。给学生顾问----------------------------------------------- ----------- 要求( “PHPMailer的/ class.phpmailer.php”);     $ mail = new PHPMailer();

$mail->Username = "rms@gmail.com"; 
$mail->Password = "12121212"; 
$mail->AddAddress($advisoremail);
$mail->FromName = "RMS-NCT";

$mail->Subject = "New Request from: ".$_SESSION['UID'];
$mail->Body    = "Dear Mr. Adviser you have got new request from 26s12115 ... click here to access it. http://localhost/rms/"; 
//-----------------------------------------------------------------------

$mail->Host = "ssl://smtp.gmail.com"; 
$mail->Port = 465;
$mail->IsSMTP(); 
$mail->SMTPAuth = true;
$mail->From = $mail->Username;
if(!$mail->Send())
    echo "Mailer Error: " . $mail->ErrorInfo;
else
    echo "Message has been sent";

// ------------向学生发送电子邮件----------------------

$mail = new PHPMailer();
$mail->Username = "rms@gmail.com"; // your GMail user name
$mail->Password = "12121212"; 
$mail->AddAddress($_SESSION['UEMAIL']);
$mail->FromName = "RMS-NCT";

$mail->Subject = "Receipt for your new Request";
$mail->Body    = "Dear Student .. Your request has been sent.. you will get response as soon as possible."; 
//-----------------------------------------------------------------------

$mail->Host = "ssl://smtp.gmail.com";
$mail->Port = 465;
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->From = $mail->Username;
if(!$mail->Send())
    echo "Mailer Error: " . $mail->ErrorInfo;
else
    echo "Message has been sent";   

2 个答案:

答案 0 :(得分:4)

只要你有两个不同的主体和身体,我会说不。没有办法简化这项任务。 但是你可以将任务放在一个函数中,它可以获得不同的参数。所以你只需要一个函数来调用。

require("phpmailer/class.phpmailer.php"); 

function send_mail($email, $subject, $body) {
    $mail = new PHPMailer();

    $mail->Username = "rms@gmail.com"; 
    $mail->Password = "12121212"; 
    $mail->AddAddress($email);
    $mail->FromName = "RMS-NCT";

    $mail->Subject = $subject;
    $mail->Body    = $body; 
    //-----------------------------------------------------------------------

    $mail->Host = "ssl://smtp.gmail.com"; 
    $mail->Port = 465;
    $mail->IsSMTP(); 
    $mail->SMTPAuth = true;
    $mail->From = $mail->Username;
    if(!$mail->Send())
        echo "Mailer Error: " . $mail->ErrorInfo;
    else
        echo "Message has been sent";
}

答案 1 :(得分:0)

require("phpmailer/class.phpmailer.php");
function sendMail($to = "trash@domain.com", $subject = "", $body = "", $from = "RMS-NCT")
{
     $mail = new PHPMailer();
     $mail->Host = "ssl://smtp.gmail.com";
     $mail->Port = 465;
     $mail->IsSMTP();
     $mail->SMTPAuth = true;
     $mail->Username = "rms@gmail.com";
     $mail->Password = "12121212";

     $mail->From = $mail->Username;
     $mail->FromName = $from;
     $mail->AddAddress($to);
     $mail->Subject = $subject;
     $mail->Body = $body;

     if(!$mail->Send()) {
          return false;
     }

     return true;
}

在代码中,smth是这样的:

$Address = $advisoremail;
$Subject = "New Request from: " . $_SESSION['UID'];
$Body = "Dear Mr. Adviser ...";
if (sendMail($Address, $Subject, $Body)) {
    echo "Message has been sent";
} else {
    echo "Mailer Error: " . $mail->ErrorInfo;
}