Отправка почты с помощью CodeIgniter по протоколу SMTP не работает

У меня проблема с отправкой почты через CI. Я использовал протокол «sendmail» для отправки почты, но она фильтруется как спам. Я использовал протокол SMTP для решения проблемы, но он не отправляется.

Мой код выглядит следующим образом:

$config = Array(
    'protocol' => 'smtp',
    'smtp_host' => 'ssl://smtp.googlemail.com',
    'smtp_port' => 465,
    'smtp_user' => '*******@gmail.com',
    'smtp_pass' => '********',
    'mailtype'  => 'html',
    'charset'   => 'iso-8859-1'
);

$this->load->library('email', $config);
$this->email->set_newline("\r\n");
$message = "test mail";
$this->email->set_newline("\r\n");
$this->email->from('[email protected]', 'St. Maries');
$this->email->to("[email protected]");
$this->email->subject('Contact - St. Marians Belguam');
$this->email->message($message);
if($this->email->send())
{
    echo "mail sent successfully";
}
else
{
    show_error($this->email->print_debugger());
}

Когда я отправляю электронное письмо с использованием протокола «smtp» в CI, я получаю следующую ошибку:

A PHP Error was encountered

Severity: Warning

Message: fsockopen() [function.fsockopen]: unable to connect to ssl://smtp.googlemail.com:465 (Connection timed out)

Filename: libraries/Email.php

Line Number: 1673

и другой список ошибок...

Я попросил администратора сервера включить «openssl». Об этом уже позаботились и включили.

Если вы хотите попробовать, перейдите по этой ссылке и проверьте сами.


person siddharth    schedule 06.08.2011    source источник
comment
Попробуйте использовать sendmail вместо smtp, посмотрите, как это работает.   -  person Brad    schedule 07.08.2011
comment
Да, я пытался использовать sendmail, но его рассылали как спам. Я хочу, чтобы он появился в папке «Входящие». Каковы условия, которые сообщают Gmail, что конкретное письмо является спамом? Спасибо за ответ, Брэд. Любой другой вариант, который я могу попробовать..?   -  person siddharth    schedule 07.08.2011
comment
Я не уверен, sendmail отлично работает для меня, но я использую электронную почту своего веб-сайта. Я так и не смог заставить stmp работать, что бы я ни пытался. Я думаю, что однажды Nettuts сделал tut на этом. Проверьте это net.tutsplus.com/articles/news/ codeigniter-from-scratch-day-3 Думаю, они использовали Gmail   -  person Brad    schedule 08.08.2011
comment
Привет, @Brad, я попробовал их почтовый код, и он сработал в моем другом проекте (на каком-то другом сервере). Но в этом он не работает. Есть ли в cPanel какая-либо опция, которую мне нужно установить или что-то в этом роде..??? заранее спасибо   -  person siddharth    schedule 08.08.2011
comment
Я не думаю, что есть, я не уверен, что вы можете сделать в этот момент. Все, что я могу сказать, это трижды проверьте свои настройки, чтобы убедиться, что все в порядке. Я получил сообщение, успешно отправленное, когда попробовал   -  person Brad    schedule 09.08.2011
comment
Привет.. Да, мне пришлось показать демо своему менеджеру, поэтому я пока внедрил протокол sendmail.. Но когда я использую smtp, он не работает. Я задал проблему администратору сервера, и он может дать мне решение. Спасибо за ответ. Если я найду какое-либо решение, я опубликую здесь ..   -  person siddharth    schedule 09.08.2011
comment
Привет .. Я сообщил администратору сервера, на котором размещен мой сайт. И теперь, если я использую простой почтовый протокол codeIgniter, он отправляет в почтовый ящик пользователя.. :-) спасибо за помощь Брэду.   -  person siddharth    schedule 28.08.2011


Ответы (1)


Если это не работает, проверьте файл php.ini. Изменить эту строку

;extension=php_openssl.dll

to

расширение=php_openssl.dll

Это означает удалить комментарий из строки в файле php.ini.

person Gourav    schedule 12.09.2013