@LoveProject

PhpMailer SMTP, как сделать отправку письма?

Как реализовать отправку сообщения с помощью PhpMailer, методом SMTP?
Интересует только отправка самого письма, все остальное работает, до этого использовал функцию mail().

<?php
namespace application\models;
use phpmailer\PHPMailer\PHPMailer;
use phpmailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;
require 'phpmailer/PHPMailer.php';
require 'phpmailer/SMTP.php';
require 'phpmailer/Exception.php';

use application\core\Model;
class Account extends Model {

public function register($post) {
		$params = [
			'id' => null,
			'email' => $post['email'],
			'login' => $post['login'],
			'password' => password_hash($post['password'], PASSWORD_BCRYPT),
			'token' => $token,
			'status' => 0,
		];

		$this->db->query('INSERT INTO accounts VALUES (:id, :email, :login, :password, :token, :status)', $params);
		$mail = new PHPMailer();
		$mail->isSMTP(); 
		$mail->Host   = 'smtp.yandex.ru';
		$mail->SMTPAuth   = true;
		$mail->Username   = 'login';
		$mail->Password   = 'password';
		$mail->SMTPSecure = 'ssl';
		$mail->Port   = 465;
		 
		$mail->setFrom('ivan@yndex.ru', 'Иван');
		$mail->addAddress($post['email'], $post['Login']); 
		 
		$mail->Subject = 'Register';
		$mail->msgHTML('Confirm: '.$_SERVER['REQUEST_SCHEME'].'://'.$_SERVER['HTTP_HOST'].'/account/confirm/'.$token);
		// Отправляем
		if ($mail->send()) {
		  echo 'Письмо отправлено!';
		} else {
		  echo 'Ошибка: ' . $mail->ErrorInfo;
	};
 ?>
  • Вопрос задан
  • 141 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы