Ошибка SMTP: 220 smtpauth.net4india.com готов Не удается отправить письмо с помощью PHP SMTP.Возможно, ваш сервер не настроен - PullRequest
0 голосов
/ 03 февраля 2019
<code>public function send_mail()
{
    $this->CI->load->library('email');
    $config = array(
        'protocol'  => 'smtp',
        'smtp_host' => 'smtpauth.net4india.com',
        'smtp_port' => 587,
        'smtp_user' => 'xxxxx@my_domain.in',
        'smtp_pass' => 'xxxxxxxx',
        'newline'   => '\r\n',
        'mailtype'  => 'html',
        'charset'   => 'utf-8'
    );
    $this->CI->email->initialize($config);
    $this->CI->email->set_mailtype("html");
    $this->CI->email->set_newline("\r\n");
    $this->CI->email->from('info@my_domain.in', 'My Domain');
    $this->CI->email->to('xxxx@gmail.com');
    $this->CI->email->subject("Test Subject");
    $this->CI->email->message('Test Content');
    if(!$this->CI->email->send())
    {
        $error = $this->CI->email->print_debugger();
        echo "<pre>"; print_r($error); echo "
"; выход; вернуть false;} вернуть true;}

У меня есть мой домен и адрес электронной почты, зарегистрированные на net4india.com, и хостинг на godaddy.

Использование вышеуказанногокод Я могу отправлять почту с моего локального хоста, но не могу отправить с сервера Godaddy.

Я добавил mx записей на хостинге Godaddy. Изменил маршрутизацию на удаленный менеджер.

Я сделалмного поисков по-прежнему заканчивается без решения.

Ответы [ 2 ]

0 голосов
/ 08 февраля 2019

Это рабочее решение для Codeigniter 3.x

Создайте файл email.php в папке конфигурации, это автоматически загрузит конфигурацию электронной почты

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

$config['useragent'] = 'Codeigniter';
$config['protocol'] = 'smtp';
$config['smtp_host'] = 'ssl://mail.domain.com';
$config['smtp_port'] = '465';
$config['smtp_timeout'] = '7';
$config['smtp_user'] = 'noreply@domain.com';
$config['smtp_pass'] = 'Password@123';
$config['charset'] = 'utf-8';
$config['newline'] = '\r\n';
$config['mailtype'] = 'html';
$config['validation'] = TRUE; 

В вашем контроллере используется

$html = '<p>Hello</p>';
$html .= '<p>This is some demo email text.</p>';

                $this->load->library('email');
                $this->email->from('noreply@example.com', 'Label', 'returnpath@example.com');
                $this->email->to('recipient@example.com');
                $this->email->bcc('cc@example,com', 'anothercc@example.com');
                $this->email->subject('Subject For Mail');    
                $this->email->message($html);
                $this->email->send();
0 голосов
/ 03 февраля 2019

После большого количества исследований я в итоге нахожу Отправка почты через других провайдеров на godaddy запрещена

<code>public function send_mail()
{
    $this->CI->load->library('email');
    $config = array(
            'protocol'  => 'mail',
            '_smtp_auth' => FALSE,
            'smtp_host' => 'localhost',
            'smtp_port' => 25,
            'newline'   => '\r\n',
            'mailtype'  => 'html',
            'charset'   => 'utf-8'
        );
     $this->CI->email->initialize($config);
    $this->CI->email->set_mailtype("html");
    $this->CI->email->set_newline("\r\n");
    $this->CI->email->from('info@my_domain.in', 'My Domain');
    $this->CI->email->to('xxxx@gmail.com');
    $this->CI->email->subject("Test Subject");
    $this->CI->email->message('Test Content');
    if(!$this->CI->email->send())
    {
        $error = $this->CI->email->print_debugger();
        echo "<pre>"; print_r($error); echo "
"; выход; возврат false;} возврат true;}

старая конфигурация:

$config = array(
        'protocol'  => 'smtp',
        'smtp_host' => 'smtpauth.net4india.com',
        'smtp_port' => 587,
        'smtp_user' => 'xxxxx@my_domain.in',
        'smtp_pass' => 'xxxxxxxx',
        'newline'   => '\r\n',
        'mailtype'  => 'html',
        'charset'   => 'utf-8'
    );

новая конфигурация:

$config = array(
            'protocol'  => 'mail',
            '_smtp_auth' => FALSE,
            'smtp_host' => 'localhost',
            'smtp_port' => 25,
            'newline'   => '\r\n',
            'mailtype'  => 'html',
            'charset'   => 'utf-8'
        );

В итоге я установил для _smtp_Auth значение false и использовал там сервер для отправки почты.

Я даже удалил свое имя пользователя и пароль, установив для аутентификации значение false.

изменив номер порта на 25, как упомянуто godaddy.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...