I want to create an application for sending mails using PHPMailer by placing it on my website
server (using SMTP),
but I can not get object of class phpmailer to change its properties of:
to_name
to_email
ContentType
from default (i.e. null).
Why are the properties keeping default values from the PHPMailer class, and not accepting my
once, though I check values i get from DB and they are good. ContentType is set in a config file.
Here is part of var_dump ($mailer); object of my extended class:
object(MyMailer)#2 (56) { [“priority”]=> int(3) [“to_name”]=> NULL [“to_email”]=> NULL …
[“ContentType”]=> string(10) “text/plain”…
also I get value of [“Port”]=> int(26) but [“SMTP_PORT”]=> int(25).
I need to use smtp port 26.
And here is the extended class of phpmailer
require_once ‘./PHPMailer/class.phpmailer.php’;
require_once ‘mailer-config.php’;
class MyMailer extends PHPMailer
{
var $priority = 3;
var $to_name = null;
var $to_email = null;
var $From = null;
var $FromName = null;
var $Sender = null;
var $ContentType = null;
function MyMailer()
{
global $eSlanje;
// Comes from mailer-config.php $eSlanje array
if($eSlanje[‘smtp_mode’] == ‘enabled’)
{
$this->Host = $eSlanje[‘smtp_host’];
$this->Port = $eSlanje[‘smtp_port’];
if($eSlanje[‘smtp_username’] != ”)
{
$this->SMTPAuth = true;
$this->Username = $eSlanje[‘smtp_username’];
$this->Password = $eSlanje[‘smtp_password’];
}
$this->Mailer = “smtp”;
}
if(!$this->From)
{
$this->From = $eSlanje[‘from_email’];
}
if(!$this->FromName)
{
$this->FromName = $eSlanje[‘from_name’];
}
if(!$this->Sender)
{
$this->Sender = $eSlanje[‘from_email’];
}
$this->Priority = $this->priority;
//echo “<br>eSlanje[content_type]”;
//var_dump ($eSlanje[‘content_type’]);
$this->ContentType = $eSlanje[‘content_type’];
}
}
and here is the cofig file:
mailer-config.php
<?php
$eSlanje[‘from_email’] = “
$eSlanje[‘from_name’] = “Joe Blog”;
$eSlanje[‘title’] = “hi there”;
$eSlanje[‘content_type’] =”text/html”;
$eSlanje[‘smtp_username’] = null;
$eSlanje[‘smtp_mode’] = “enabled”;
$eSlanje[‘smtp_port’] = 26;
$eSlanje[‘smtp_host’] = “mail.mysite.com”;
Here is where I insert values of email and name into the object:
<?php session_start();
include (“password.php”);
require_once ‘class_lib/MyMailer.php’;
require “class_lib/MySQL_Database.php”;
require “get_email_template.php”;
$db = new MySQL_Database ();
$id = isset($_GET[‘id’]) ? $_GET[‘id’] : false;
$sql = “select email,ime from “.TABLE.” where id = $id”;
$query = mysql_query ($sql);
$toClient = mysql_fetch_array($query);
$to = isset($toClient[’email’]) ? $toClient[’email’] : false;
var_dump($to); // here I get a valid email address
$to_name = isset($toClient[‘ime’]) ? $toClient[‘ime’] : false;
//var_dump($to_name); // here I get a valid preson’s name
$mailer = new MyMailer();
$mailer->AddAddress($to, $to_name);
$mailer->Body = get_htmlBody();
$mailer->AltBody = get_txtBody();
if(!$mailer->Send())
{
echo “<br> Mailer Error: ” . $mailer->ErrorInfo.” ”;
}
else {
echo “<br>message not sent  ”;
}
$mailer->ClearAddresses();
var_dump($mailer); // this is where the object trace comes from
?>