PHPMAILER не работает, но функция почты по умолчанию работает автоматически

/*send email Using at Index.php page*/
$to = $_POST['email'];
$subject = "Registration Confirmation";
$body = "<p>Thank you for registering at demo site.</p>
<p>To activate your account, please click on this link: <a href='".DIR."activate.php?x=$id&y=$activasion'>".DIR."activate.php?x=$id&y=$activasion</a></p>
<p>Regards Site Admin</p>";
//include 'classes/phpmailer/mail.php';
//function Send_Mail($to,$subject,$body)

$mail = new Mail();
//$mail->setFrom(SITEEMAIL);

//$mail->Debugoutput = 'html';
$mail->addAddress($to);
//$mail->setFrom('[email protected]', 'noreply');
//$mail->addReplyTo('[email protected]', 'First Last');
$mail->subject($subject);
//$mail->IsHTML(true);
$mail->body($body);
$mail->send();

/*PHP Mailer Code used in mail.php*/
<?php
include('class.phpmailer.php');
class Mail extends PhpMailer

//function Send_Mail($subject,$body)
{
// Set default variables for all new objects
public $From     = '[email protected]';
public $FromName = SITETITLE;
public $Host     = 'smtp.gmail.com';
public $Mailer   = 'isSMTP';
public $SMTPAuth = true;
public $Username = '[email protected]';
public $Password = 'password';
public $SMTPSecure = 'tls';
public $Port = 587;
public $Priority    = 1; // Highest priority - Email priority (1 = High, 3 = Normal, 5 = low)
public $CharSet     = 'UTF-8';
public $Encoding    = '8bit';
public $ContentType = 'text/html; charset=utf-8\r\n';
//public $From        = '[email protected]';
//public $FromName    = 'GMail Test';
public $WordWrap = 75;

public function subject($subject)
{
return $this->Subject = $subject;
}

public function body($body)
{
return $this->Body = $body;
}

public function send()
{
$this->AltBody = strip_tags(stripslashes($this->Body))."\n\n";
$this->AltBody = str_replace("&nbsp;", "\n\n", $this->AltBody);
return parent::send();
}
}

Я использую этот код выше на странице индекса, и это в email.php и email.php было включено в config.Но он не работает вместо этой функции mail () по умолчанию ….. Я перепробовал все, даже последний код phpmailer его сбой .. Никто не имеет идеи, поэтому, пожалуйста, помогите

0

Решение

Это не верно:

$Mailer   = 'isSMTP';

Так должно быть:

$Mailer   = 'SMTP';

Лучше всего было бы позвонить $this->isSMTP() от переопределенного конструктора.

Я также рекомендовал бы использовать встроенный html2text метод, если вы собираетесь принудительно установить AltBody как это.

Если вы собираетесь переопределить вещи, читать код.

Вот улучшенная версия:

class Mail extends PhpMailer

//function Send_Mail($subject,$body)
{
// Set default variables for all new objects
public $From     = '[email protected]';
public $FromName = SITETITLE;
public $Host     = 'smtp.gmail.com';
public $SMTPAuth = true;
public $Username = '[email protected]';
public $Password = 'password';
public $SMTPSecure = 'tls';
public $Port = 587;
public $Priority    = 1; // Highest priority - Email priority (1 = High, 3 = Normal, 5 = low)
public $CharSet     = 'UTF-8';
public $Encoding    = '8bit';
//public $From        = '[email protected]';
//public $FromName    = 'GMail Test';
public $WordWrap = 75;

public function __construct($exceptions = null)
{
parent::__construct($exceptions);
$this->isSMTP();
$this->isHTML();
}

public function subject($subject)
{
return $this->Subject = $subject;
}

public function body($body)
{
return $this->Body = $body;
}

public function send()
{
$this->AltBody = $this->html2text($this->Body);
return parent::send();
}
}
}
0

Другие решения

какое письмо вы отправляете
например: Gmail или Hotmail

если ssl нет
Hotmail автоматически удаляет электронную почту, даже не уведомляя об этом. Вы добавили исключение для конкретного отправителя.

0

По вопросам рекламы [email protected]