Nano Hash - криптовалюты, майнинг, программирование

не могу правильно отправить письмо в codeigniter

у меня проблема с отправкой электронной почты в codeigniter.

$ci = get_instance();
$ci->load->library('email');
$config['protocol'] = "mail";
$config['smtp_host'] = "ssl://mail.smsgt.com";
$config['smtp_port'] = "25";
$config['smtp_user'] = "[email protected]"; 
$config['smtp_pass'] = "";
$config['charset'] = "utf-8";
$config['mailtype'] = "html";
$config['newline'] = "\r\n";
$config['crlf'] = "\r\n";

и вот мой код при отправке письма

public function send_email_accountability($C11,$C12)
{

    date_default_timezone_set('Asia/Manila');
    $this->load->library('email');
    $this->email->set_mailtype("html");
    $this->email->from('[email protected]', 'company email');
    $this->email->to($C11); 
    $this->email->subject('Accountability for'. " ". $C12);
    $this->email->message("testing");

    $check = $this->email->send();
    //echo $this->email->print_debugger(); 
    if ($check){
                $data = "true";
    }
            else{
                $data = "false";
            }

}

когда я отправляю электронное письмо с простым текстом в MESSAGE, он работает нормально. но проблема в том, что когда я отправляю электронную почту с помощью HTML-скриптов, она не выдает ошибку, но не отправляется пользователю, и электронная почта не будет получена с помощью MS OUTLOOK. может кто-нибудь помочь мне с этой проблемой? Спасибо, парни !

29.01.2014

  • попытаться распечатать параметры функции с помощью var_dump() 29.01.2014

Ответы:


1

Было бы полезно, если бы вы могли указать возможную ошибку, возвращаемую echo $this->email->print_debugger();, так почему бы просто не включить ее в данный момент, а затем запустить текущий код.

В качестве альтернативы попробуйте следующее:

public function send_email_accountability($C11,$C12)
{
  date_default_timezone_set('Asia/Manila');

  $ci =& get_instance();
  $ci->load->library('email');

  $config['protocol'] = "mail";
  $config['smtp_host'] = "ssl://mail.smsgt.com";
  $config['smtp_port'] = "25";
  $config['smtp_user'] = "[email protected]"; 
  $config['smtp_pass'] = "";
  $config['charset'] = "utf-8";
  $config['mailtype'] = "html";
  $config['newline'] = "\r\n";
  $config['crlf'] = "\r\n";

  $ci->email->initialize($config);

  $ci->email->from('[email protected]', 'company email');
  $ci->email->to($C11); 
  $ci->email->subject('Accountability for'. " ". $C12);
  $ci->email->message("testing");

  $check = $ci->email->send();

  //echo $ci->email->print_debugger(); 

  if ($check)
    $data = "true";
  else
    $data = "false";    
}

ИЗМЕНИТЬ

Поскольку вы упомянули в комментарии, что echo $ci->email->print_debugger(); возвращает "Ваше сообщение было успешно отправлено с использованием следующего протокола", это просто означает, что в вашем сценарии нет синтаксической ошибки. Как я уже сказал, я думал о проблеме с почтовым сервером.

Если я предложу, как я буду отлаживать вашу проблему:

  • Я заменю $C11 адресом Gmail в $ci->email->to($C11);, а затем запущу свой текущий скрипт и посмотрю, остается ли проблема с задержкой такой же.
  • Замените текущие учетные данные SMTP-сервера чем-то вроде Mandrill, чтобы его журнал отчетов обязательно дал вам подсказку о том, что происходит.

Но в любом случае, я думаю, вам все равно придется что-то копать на своем почтовом сервере (@smsgt.com). На вашем месте я свяжусь с администратором вашего сервера и начну искать подсказки в логах почтового сервера.

29.01.2014
  • Ваше сообщение было успешно отправлено с использованием следующего протокола: mail, это сообщение, которое я получаю. моя проблема в том, что теперь он медленно принимается пользователем. есть подробности по этому поводу? 29.01.2014
  • $ci =& get_instance(); есть ли знак & для получения экземпляра? 29.01.2014
  • Да, это &. Мои мысли были бы проблемой почтового сервера. Пробовали ли вы отправить его на другой адрес электронной почты, отличный от @smsgt.com? 29.01.2014
  • мне нужно отправить все электронные письма на @smsgt.com, потому что это адрес электронной почты по умолчанию. smtp-порт 25. 29.01.2014
  • Я также хочу спросить, каково значение & в get_instance? Благодарность 29.01.2014
  • =& - это передача переменной по ссылке, что касается $ci =& get_instance();, Энтони хорошо объясняет это здесь. Я предложил отправить его не на @smsgt.com, чтобы вы могли оценить, действительно ли это причина вашего почтового сервера (входящая) или (исходящая). 29.01.2014
  • ваш код работает хорошо, но моя единственная проблема сейчас заключается в том, как улучшить отправку электронных писем пользователям. Можете ли вы помочь мне ? я попытался отправить его на @yahoo.com, и это тоже проблема. 29.01.2014
  • давайте продолжим это обсуждение в чате 29.01.2014

  • 2

    Попробуйте добавить это:

    $this->email->priority(3);
    

    Дополнительную информацию можно найти здесь: http://ellislab.com/codeigniter/user-guide/libraries/email.html

    29.01.2014
  • какова цель $this-›email-›priority? Благодарность 29.01.2014
  • при некоторой задержке достижения почтового сервера приоритет используется для ускорения получения почты 29.01.2014

  • 3

    Вы не инициализировали свою библиотеку электронной почты с заданными значениями конфигурации.

    Вам просто нужно добавить строку ниже в свой код.

    $this->email->initialize($config);
    
    29.01.2014
  • я забыл включить $this-›email-›initialize($config); моя проблема в том, что теперь он медленно принимается пользователем. есть подробности по этому поводу? 29.01.2014
  • @vincent, не могли бы вы вкратце объяснить свою проблему? 29.01.2014
  • @Shenal Моя проблема в том, что когда я включаю изображение в отправку. электронная почта не будет отправлена ​​вообще. но когда я не включил электронную почту. мое письмо будет отправлено. и обычно отправка занимает 2-5 минут 29.01.2014
  • @vincent все, что вам нужно, это настроить протокол как «mail» и тип почты как «html». 29.01.2014

  • 4

    Используйте что-то вроде этого

        $this->load->library('email', array(
                        'protocol' => 'mail',
                        'smtp_host' => 'ssl://mail.smsgt.com',
                        'smtp_port' => '25',
                        'smtp_user' => '[email protected]',
                        'smtp_pass' => '',
                        'newline' => '\r\n',
                        'crlf' => '\r\n',
                        'mailtype' => 'html'
            ));
    
        $this->email->to($C11);
        $this->email->from('[email protected]', 'company email');
        $this->email->subject('Accountability for'. " ". $C12);
        $this->email->message("testing");
    
        if( $this->email->send() ) {
            return TRUE;
        } else {
            return FALSE;
        }
    
    29.01.2014
  • моя проблема в том, что теперь он медленно принимается пользователем. есть подробности по этому поводу? 29.01.2014

  • 5

    попробуйте этот код, вот мой код, который я использую при отправке электронной почты

        function emailformat(){
                $config['protocol'] = 'smtp'; // mail, sendmail, or smtp    The mail sending protocol.
                $config['smtp_host'] = 'smtp.gmail.com'; // SMTP Server Address.
                $config['smtp_user'] = '[email protected]'; // SMTP Username.
                $config['smtp_pass'] = '@password'; // SMTP Password.
                $config['smtp_port'] = '25'; // SMTP Port.
                $config['smtp_timeout'] = '5'; // SMTP Timeout (in seconds).
                $config['wordwrap'] = TRUE; // TRUE or FALSE (boolean)    Enable word-wrap.
                $config['wrapchars'] = 76; // Character count to wrap at.
                $config['mailtype'] = 'html'; // text or html Type of mail. If you send HTML email you must send it as a complete web page. Make sure you don't have any relative links or relative image paths otherwise they will not work.
                $config['charset'] = 'utf-8'; // Character set (utf-8, iso-8859-1, etc.).
                $config['validate'] = FALSE; // TRUE or FALSE (boolean)    Whether to validate the email address.
                $config['priority'] = 3; // 1, 2, 3, 4, 5    Email Priority. 1 = highest. 5 = lowest. 3 = normal.
                $config['crlf'] = "\r\n"; // "\r\n" or "\n" or "\r" Newline character. (Use "\r\n" to comply with RFC 822).
                $config['newline'] = "\r\n"; // "\r\n" or "\n" or "\r"    Newline character. (Use "\r\n" to comply with RFC 822).
                $config['bcc_batch_mode'] = FALSE; // TRUE or FALSE (boolean)    Enable BCC Batch Mode.
                $config['bcc_batch_size'] = 200; // Number of emails in each BCC batch.
    
                    $this->load->library('email');
                    $this->email->initialize($config);
                    $this->email->from('[email protected]', 'Robot');
                    $this->email->to('[email protected]');
                    $this->email->subject('Expiration Notification');
                    $this->email->message('<html><body>This Message is to notify!</body></html>');
                    $this->email->send();
        }
    
    30.01.2014
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..