Мне нужно отправить письмо с помощью 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();
} }?>
спасибо всем, кто помог!