PEAR: Mail Mime — Не могу отправить письмо после загрузки на хостинг сайт — GoDaddy

Я создавал этот проект, где система принимает регистрацию, а затем отправляет информацию по почте владельцу. я использую ГРУША: Почта Мим сделать это. Отправка почты фактически работает на моем локальном компьютере, но после загрузки этого проекта на хостинг-сайт (GoDaddy) она больше не отправляется.

Я сделал проверку ошибок, чтобы увидеть, что мешает отправке почты, и я получил это сообщение:

Не удалось подключиться к ssl: //smtp.gmail.com: 465 [SMTP: Не удалось подключить сокет: соединение отклонено (код: -1, ответ:)]

Я использую учетную запись GMail для отправки сообщений электронной почты и использую этот код для этого:

/* INCLUDE PREREQUISITES IN ORDER TO SEND AN EMAIL */
include('../../application/third_party/Mail-1.3.0/Mail-1.3.0/Mail.php');
require_once '../../application/third_party/Mail_Mime-1.10.0/Mail_Mime-1.10.0/Mail/mime.php';

/* HEADER INFORMATION */
$from = '<***@gmail.com>';
$to = '<***@gmail.com>';
$subject = 'Someone registers';
$crlf = "\r\n";

$headers = array(
'From' => $from,
'To' => $to,
'Subject' => $subject
);

// CREATING THE MIME MESSAGE
$mime = new Mail_mime($crlf);

$html = '
<html>
<body>
Message here
</body>
</html>';

// SETTING THE BODY OF THE EMAIL TO HTML
$mime->setHTMLBody($html);

$body = $mime->get();
$headers = $mime->headers($headers);

// SENDER INFORMATION
$smtp = Mail::factory('smtp', array(
'host' => 'ssl://smtp.gmail.com',
'port' => '465',
'auth' => true,
'username' => '***@gmail.com',
'password' => '***'
));

$mail = $smtp->send($to, $headers, $body);

if (PEAR::isError($mail)) {
$errormessage = '<p>'.$mail->getMessage().'</p>'; // ERROR MESSAGE
$mail->getUserInfo();
}

Да я включил Доступ к менее защищенным приложениям учетной записи отправителя GMail.

И да, отображение ошибок включено.

ini_set('display_errors', 1);
error_reporting(E_ALL);

Какие-нибудь решения, которые я мог бы пропустить?

1

Решение

Нашел ответ относительно исходящей почты в этом — Отправка электронной почты через gmail SMTP на GoDaddy.

Это из-за хостинг-провайдера GoDaddy, который ограничивает SSL-порт GMail (465) и других портов, таких как 25 и 587. Благодаря этой статье —Решение проблем с PHPMailer — GitHub для прояснения этого. Вместо этого пользователи используют почтовый сервер GoDaddy.

Но мне все же удалось отправить электронное письмо с помощью GMail, выполнив:

$smtp = Mail::factory('smtp');
/* SETTINGS WILL BE IN DEFAULT (E.G. HOST:LOCALHOST, PORT: 45) */

вместо

$smtp = Mail::factory('smtp', array(
'host' => 'ssl://smtp.gmail.com',
'port' => '465',
'auth' => true,
'username' => '***@gmail.com',
'password' => '***'
));

Но получатель получает отправленное электронное письмо как «спам» — в результате получатель не будет замечать входящие электронные письма из системы (неправильный выбор). И в отправленных элементах отправителя нет записей (означает, что вы «использовали» электронную почту для отправки электронной почты, но не полностью).

Итак, мы вернулись с почтовым сервером GoDaddy. Во-первых, вы должны определить сервер ретрансляции вашей учетной записи хостинга, проверив это Как называется сервер ретрансляции моей учетной записи хостинга?, который был опубликован самими GoDaddy. В моем случае Linux (cPanel), который я буду использовать localhost как мой хозяин.

$smtp = Mail::factory('smtp', array(
'host' => 'localhost',
'auth' => true,
'username' => '***@***.com',
'password' => '***'
));

Но странность в том, что до сих пор нет записей об отправленных товарах. Надеюсь, представитель GoDaddy это читает.

0

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

Других решений пока нет …

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