email — настройка php почты с помощью smtp

У меня есть php-почта без проверки SMTP и почтовый сервер не позволяет мне отправлять электронную почту без использования SMTP. Я перепробовал много вариантов, но не могу это исправить; Я новичок в мире php. Пожалуйста, помогите мне исправить это.
Это мой почтовый код php:

<?php

/**
* Sends an e-mail based on a template
*
* @param $template_name
* @param $template_data
* @param $recipient_mail
* @param $subject
* @param bool $is_admin
* @throws Exception
* @throws SmartyException
*/
function send_email_template($template_name, $template_data, $recipient_mail, $subject, $is_admin = false){

global $template;

$template->assign('mail', $template_data);

if($is_admin) {
$body = $template->fetch(ADMIN_TEMPLATE . 'email/' . $template_name);
}else{
$body = $template->fetch(CURRENT_TEMPLATE . 'email/' . $template_name);
}

$headers = sprintf('From: %s', get_setting('email_from')) . '\r\n';
$headers  .= 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

mail($recipient_mail, $subject, $body, $headers);

}

/**
* Checks if email exists based on given $email
*
* @param $email
* @return bool
*/
function email_exists($email){

$sql = 'select * from members where members_email = ' . make_safe($email);
return fetch_row($sql);

}

/**
* Updates the email code for a member based on their email
*
* @param $email
* @param $email_code
* @return bool
*/
function update_email_code($email, $email_code){

global $database;

try {

$rs = $database->Execute('select * from members where members_email = ' . make_safe($email));

$member = array();

$member['members_email_code'] = $email_code;

$updateSQL = $database->GetUpdateSQL($rs, $member);
$database->Execute($updateSQL);

return true;

} catch (exception $e) {

error_log($e);

return false;

}

}

2

Решение

Используйте этот скрипт для отправки электронной почты с использованием SMTP.
В этом случае мы используем Google SMTP-сервер, воспользуйтесь этой ссылкой, чтобы узнать о Google SMTP https://support.google.com/a/answer/176600?hl=en.

<?php
ini_set("SMTP", "aspmx.l.google.com");
ini_set("sendmail_from", "[email protected]");

$message = "The mail message was sent with the following mail setting:\r\nSMTP = aspmx.l.google.com\r\nsmtp_port = 25\r\nsendmail_from = [email protected]";

$headers = "From: [email protected]";mail("[email protected]", "Testing", $message, $headers);
echo "Check your email now....<BR/>";
?>
2

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

Ниже код работает для меня

require_once('../class.phpmailer.php');

//include("class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded

$mail             = new PHPMailer();

$body             = file_get_contents('contents.html');
$body             = eregi_replace("[\]",'',$body);

$mail->IsSMTP(); // telling the class to use SMTP
$mail->Host       = "mail.yourdomain.com"; // SMTP server
$mail->SMTPDebug  = 2;                     // enables SMTP debug information (for testing)
// 1 = errors and messages
// 2 = messages only
$mail->SMTPAuth   = true;                  // enable SMTP authentication
$mail->Host       = "mail.yourdomain.com"; // sets the SMTP server
$mail->Port       = 26;                    // set the SMTP port for the GMAIL server
$mail->Username   = "yourname@yourdomain"; // SMTP account username
$mail->Password   = "yourpassword";        // SMTP account password

$mail->SetFrom('[email protected]', 'First Last');

$mail->AddReplyTo("[email protected]","First Last");

$mail->Subject    = "PHPMailer Test Subject via smtp, basic with authentication";

$mail->AltBody    = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test

$mail->MsgHTML($body);

$address = "[email protected]";
$mail->AddAddress($address, "John Doe");

$mail->AddAttachment("images/phpmailer.gif");      // attachment
$mail->AddAttachment("images/phpmailer_mini.gif"); // attachment

if(!$mail->Send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message sent!";
}

И если вы используете Gmail в качестве SMTP

Зайдите в настройки своего аккаунта ->https://myaccount.google.com/security?utm_source=OGB&PLI = 1 # connectedapps

нажмите «Разрешить менее защищенное приложение», чтобы включить.

0

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