Här kommer förresten del del av koden som har med parsningen av bodyn att göra. Ser förresten nu att jag inte skapar en ny instans i varje loop, kanske kan det vara det som ställer till det? Om det är något i koden, tror jag att det är någon av funktionerna "setTemplate()" eller "parseMail()" i klassen som strular. Någon som tror något annat?
Klassen:
require("phpMailer/class.phpmailer.php");
Class KOMail extends PHPMailer {
var $template;
var $vars;
function __construct(){
$this->init();
}
private function init(){
$this->vars = array();
}
public function parseMail(){
$data = $this->template;
foreach($this->vars as $key => $value){
$data = str_replace($key, $value, $data);
}
return $data;
}
public function setTemplate(){
$template = $this->template;
if(!file_exists($template)){
$template = ROOTPATH . "inc/template.default.htm";
}
$fp = fopen($template, "r");
$data = fread($fp, filesize($template));
fclose($fp);
// return (!$data == false ? $this->parseMail($data) : false);
$this->template = $data;
return $data;
}
}
Aviseringen:
$Notifies = array(
array(
"Name" => "Micke",
"Email" => "micke@domain.com",
"InvoiceId" => 13454345
),
array(
"Name" => "Arne",
"Email" => "micke@domain.com",
"InvoiceId" => 1377845
),
array(
"Name" => "Kalle",
"Email" => "micke@domain.com",
"InvoiceId" => 13335411
),
);
$emailBody = <<<EOT
{CONTENT}
EOT;
$mail = new KOMail();
$mail->CharSet = "utf-8";
foreach($Notifies as $key => $Notify){
try {
$mail->template = ROOTPATH . SKINPATH . "templates/email.default.htm";
if(!$mail->setTemplate() == false){
$mail->vars = array(
"{CLIENT_LONG_NAME}" => $CLIENT_LONG_NAME,
"{CLIENT_WEB_ADDR}" => ABSURL,
"{SKINPATH}" => SKINPATH,
"{CONTENT}" => str_replace(
array(
"{userFirst}",
"{invoiceId}",
),
array(
$Notify['Name'],
$Notify['InvoiceId'],
),
$emailBody),
"{CLIENT_MAIL_ADDR}" => $CLIENT_MAIL_ADDR,
"{DATETIME}" => set_datetime(time(), DEFAULT_GMT, "datetime"),
"{IPADDR}" => $_SERVER['REMOTE_ADDR']
);
$msgBody = $mail->parseMail();
$mail->MsgHTML($msgBody);
// Add address mm. som inte är intressant just nu...
// ...
// Skickar mm...
$mail->ClearAddresses();
$mail->ClearCCs();
$mail->ClearBCCs();
}
} catch (phpmailerException $e) {
} catch (Exception $e) {
}
}
$mail = null;
