Мне нужно отправить письмо с помощью 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 = '[email protected]';
$mail->Password = $password;
$mail->SMTPSecure = 'ssl';
$mail->Port = '465';
//Content
$mail->isHTML(true);
//Recipients
require 'dbh.inc.php';
$userEmail=$_POST["email"];
$mail->setFrom('[email protected]');
$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 = '[email protected]'; // 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="[email protected]";
$mail->setFrom($email);
$mail->addAddress($to);
$mail->Subject = $subject;
$mail->Body = $header .$message;
$mail->send();
} }?>
спасибо всем, кто помог!
Задача ещё не решена.
Других решений пока нет …