Mám PHPMailer ve verzi 5.1. Napsal jsem si vlastní třídu, které rozšiřuje PHPMailer (MyMail extends PHPMailer), kde jsem si definoval pár defaultních věcí (znakovou sadu, odesilatele,...).
Řeším ale problém s tím, že když odešlu email se špatně vyplněným odesilatelem, tak mi to vyhodí chybu, aniž bych kdekoliv psal echo, nebo print. V dokumentaci jsem našel, že fce Send odešle email, případně zapíše chybu do proměnné ErrorInfo, ve které chyba je, ale mám ji vypsanou bez mého přání.
Send mám dané v podmínce, a nepomůže ani @, který by měl umlčet chyby.
Jak tedy vypnout chybové hlášky?
Tady je třída (v ní by probmlém byt neměl), $cfg je taky v pořádku:
class MyMailer extends PHPMailer {
function __construct(){
global $cfg;
$this->SetLanguage("cz");
$this->CharSet = $cfg['mail_charset'];
$this->Mailer = $cfg['mail_mailer'];
$this->SetFrom($cfg['mail_from'],$cfg['mail_from_name']);
$this->AddReplyTo($cfg['mail_reply_to'],$cfg['mail_reply_to_name']);
if($cfg['mail_smtp_enabled']==1){
$this->IsSMTP(true);
$this->Host = $cfg['mail_smtp_host'];
$this->Port = $cfg['mail_smtp_port'];
$this->SMTPAuth = $cfg['mail_smtp_auth'];
$this->Username = $cfg['mail_smtp_user'];
$this->Password = $cfg['mail_smtp_pass'];
}
}
}
A tady vlastní email:
$mail = new MyMailer();
$mail->AddAddress('pelkto@centrum.cz');
$mail->Body = 'ěščřžýáíésdfghj';
$mail->Subject = 'ěščřžýáíésdfghj';
if(@$mail->Send()){
//echo "OK";
}
else {
//echo "Chyba";
}