Php Mailer (Неустранимая ошибка: допустимый объем памяти 134217728 байт исчерпан ...) - PullRequest
0 голосов
/ 07 декабря 2018

Мне нужно отправить письмо с помощью PhpMailer с моего локального сервера.Я создал страницу для класса PHPmailer с именем mail.php.Это код:

<?php 
require 'C:/xampp/htdocs/logins/loginprocedural2/includes/page.php'; 

require 'C:/xampp/htdocs/logins/loginprocedural2/PHPMailer/src/Exception.php';
require 'C:/xampp/htdocs/logins/loginprocedural2/PHPMailer/src/PHPMailer.php';
require 'C:/xampp/htdocs/logins/loginprocedural2/PHPMailer/src/SMTP.php';


class EMail {

  public static function sendMail() {
//Server settings
$mail->SMTPDebug = 2;                                   
$mail->isSMTP();                  
$mail->Host = 'smtp.gmail.com';            
$mail->SMTPAuth = true;                     
$mail->Username = 'root@gmail.com';                    
$mail->Password = $password;                    
$mail->SMTPSecure = 'ssl';                              
$mail->Port = '465';

//Content
$mail->isHTML(true);                                  
//Recipients 

require 'dbh.inc.php';
$userEmail=$_POST["email"];
$mail->setFrom('root@gmail.com');
$mail->addAddress($userEmail);
$mail->Subject = '$subject';
$mail->Body    = '$message';
$mail->AltBody = '$header;';

$mail->send();
 } }

Затем я включил mail.php в page.php, которая является страницей, содержащей объявленные переменные, которые я поместил в код mail.php, и где я написал:

EMail::sendMail($to,$subject,$message,$header);

Когда я обновляю page.php, он выдает мне эту ошибку:

Неустранимая ошибка: допустимый объем памяти 134217728 байт исчерпан (попытался выделить 8192 байта) в C: \ xampp \htdocs \ logins \ loginprocedural2 \ includes \ page.php в строке 38

Я мог бы избежать этого, удалив файлы, необходимые в верхней части mail.php.Но они мне нужны.Я нигде не нашел ответа.Есть ли проблема с классом, который я создал?Вы можете мне помочь? РЕДАКТИРОВАТЬ: хорошо, поэтому в приведенном выше коде было еще несколько ошибок, которые я смог решить.поэтому я публикую правильный код, потому что я думаю, что, возможно, кому-то он понадобится в будущем.

<?php   
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require 'C:/xampp/htdocs/logins/loginprocedural2/PHPMailer/src/PHPMailer.php';
require 'C:/xampp/htdocs/logins/loginprocedural2/PHPMailer/src/POP3.php'; 
require 'C:/xampp/htdocs/logins/loginprocedural2/PHPMailer/src/OAuth.php'; 
require 'C:/xampp/htdocs/logins/loginprocedural2/PHPMailer/src/Exception.php';
require 'C:/xampp/htdocs/logins/loginprocedural2/PHPMailer/src/SMTP.php';  

  $mail = new EMail();    

class EMail {

            public static function sendMail($to,$email, $subject, $message,$header) {

//Server settings

$mail = new PHPMailer(true);
$mail->SMTPDebug = 2;                                 // Enable verbose debug output
$mail->isSMTP();                                      // Set mailer to use SMTP
$mail->Host = 'smtp.gmail.com';                       // Specify main and backup SMTP servers
$mail->SMTPAuth = true;                               // Enable SMTP authentication
$mail->Username = 'root@gmail.com';                   // SMTP username
$mail->Password = 'pwd';                              // SMTP password
$mail->SMTPSecure = 'ssl';                            // Enable TLS  encryption, `ssl` also accepted
$mail->Port = '465';
date_default_timezone_set('Etc/UTC');

//Content

$mail->isHTML(true);                                  // Set email format to HTML  
$mail->CharSet = 'UTF-8';

//Recipients 

require 'dbh.inc.php'; 
$to=$userEmail=$_POST["email"];
$email="caredda.sara@gmail.com";
$mail->setFrom($email);
$mail->addAddress($to);
$mail->Subject = $subject;
$mail->Body    = $header .$message; 

$mail->send();


  } }?>

спасибо всем, кто помог!

...