За последние 24 часа нас посетили 17564 программиста и 1715 роботов. Сейчас ищут 1786 программистов ...

Доработка формы. Отправка почты на несколько адресов

Тема в разделе "Работа с почтой", создана пользователем Kir-kir, 1 окт 2015.

  1. Kir-kir

    Kir-kir Новичок

    С нами с:
    1 окт 2015
    Сообщения:
    4
    Симпатии:
    0
    Помогите деревянному по-пояс с фанерными ушами юзеру доработать модуль обратного звонка.
    Письма отправляются только на 1 адрес - информация находится в переменной $call_email, мне нужно отправлять на 3 адреса. Ниже код:
    Код (PHP):
    1. * Письмо на e-mail с информацией о просящем перезвонить.
    2.      */
    3.     function SendCallback( $phone, $call_email, $name, $time, $params )
    4.     {
    5.         $phone = preg_replace('/[^0-9-_)( ]/u', '', $phone);
    6.         $title = '"'.stripslashes(JRequest::getVar('title_cb')).'"';
    7.  
    8.         jimport('joomla.mail.mail');
    9.         $m = & JMail::getInstance();
    10.         $m->setSender(array($call_email, JText::_('modcallback_title')));
    11.         
    12.         $pattern = array('{name}', '{phone}', '{time}', '{curr_day}', '{curr_month}', '{curr_year}', '{curr_time}', '{title}');
    13.         $replace = array($name, $phone, $time, date('d'), date('m'), date('Y'), date('H:i'), $title);
    14.         $subject = str_replace($pattern, $replace, $params->get('subject_email'));
    15.         $m->setSubject($subject);
    16.         $body = str_replace($pattern, $replace, $params->get('body_email'));
    17.         $m->setBody($body);
    18.         $m->addRecipient($call_email);
    19.         $result = $m->Send();
    20.         //echo $result;
    21.  
    22.         return $result;
    23.     }
    24.     
    25.     function end ()
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Нужно уточнить версию Joomla API, возьмём за пример то, что первое выдало в поиске https://docs.joomla.org/API15:JMail/addBCC

    Это
    Код (PHP):
    1. $m->addRecipient($call_email); 
    меняем на
    Код (PHP):
    1. $m->addBCC($call_email); 
    Что теперь передавать в аргумент $call_email функции SendCallback?
    Вот это:
    Код (PHP):
    1. $call_email = array(
    2. '1@example.com',
    3. '2@example.com',
    4. '3@example.com',
    5. );
    6. SendCallback( ..., $call_email, ... )
    7.  
     
  3. Kir-kir

    Kir-kir Новичок

    С нами с:
    1 окт 2015
    Сообщения:
    4
    Симпатии:
    0
    Да...плохо быть тупым и настойчивым (это я про себя).
    Не нашёл информацию про API для Joomla 2.5.
    Сделал через addBBC, но теперь не приходит не приходит ни на одну почту, может неправильно передаю из формы ?
    Код (PHP):
    1. <?php
    2.  
    3. if( !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' );
    4.  
    5.     @ session_start();
    6.     require_once( dirname(__FILE__).'/helper.php' );
    7.     $call_email = $params->get( 'call_email', 'info@domain.com'); /* может ошибка в здесь? */
    8.     $show_kcaptcha = $params->get('show_kcaptcha', 1);
    9.  
    10.     $phone = JRequest::getVar( 'phone', '' );
    11.     $name = JRequest::getVar( 'name', '' );
    12.     $time = JRequest::getVar( 'time', '' );
    13.     $kcaptcha_code = JRequest::getVar( 'kcaptcha_code', '' );
    14.     $form_send = JRequest::getVar( 'form_send', 0 );
    15.     if ($form_send == 1)
    16.     {
    17.         if (($_SESSION['callback-captcha-code'] == $kcaptcha_code && $show_kcaptcha == 1) || $show_kcaptcha == 0)
    18.         {
    19.             if ($phone != '' && $name != '')
    20.             {
    21.                 if (modCallbackHelper::SendCallback($phone, $call_email, $name, $time, $params))
    22.                     $send_code = JText::_('modcallback_send_succefull');
    23.                 else
    24.                     $send_code = JText::_('modcallback_send_error');
    25.             }
    26.             else
    27.                 $send_code = JText::_('modcallback_invalid_name_phone');
    28.         }
    29.         else
    30.             $send_code = JText::_('modcallback_invalid_kcaptcha');
    31.     }
    32.     require( JModuleHelper::getLayoutPath( 'mod_callback', $params->get('layout', 'default') ) );
    33. ?>
    Или есть какой-нибудь топорный метод - прописать e-mail-ы прямо в PHP?
    Понимаю, что надо садится и изучать PHP ((((

    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    а что содержит $call_email? можно попробовать сделать так var_dump($call_email); и посмотреть содержание

    что в $params тоже не известно, дай ссылку на документацию, посмотрим
    Код (PHP):
    1. $call_email = $params->get( 'call_email', 'info@domain.com'); 
     
  5. Kir-kir

    Kir-kir Новичок

    С нами с:
    1 окт 2015
    Сообщения:
    4
    Симпатии:
    0
  6. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    ничего там не понятно, попробуй так:

    Код (PHP):
    1. $call_email = array('1@example.com', '2@example.com', '3@example.com', ); 
     
  7. Kir-kir

    Kir-kir Новичок

    С нами с:
    1 окт 2015
    Сообщения:
    4
    Симпатии:
    0
    Попробовал добавить адреса электронных адресов через массив - почта не приходит ни на один из адресов.
     
  8. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Там много чего намешано, попробуй на форуме по joomla спросить или переделай на PHPMailer