отсылка POST сообщений вместо mail в swiftmailer

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
phpstarter
Сообщения: 241
Зарегистрирован: 2014.12.06, 00:06

Re: отсылка POST сообщений вместо mail в swiftmailer

Сообщение phpstarter »

сделал как сказали, только send функцию описал

Код: Выделить всё

    public function send(\Swift_Mime_Message $message, &$failedRecipients = null) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL,
   'test/index?g=yes'
);
$content = curl_exec($ch);
echo $content;
     }
вобщем как доходит до отсылки письма на экран выходит сообщение
что The requested URL couldn't be resolved.
Получается ему не нравится адресс который я даю ему.
однако ручками этот адресс срабатывает если загнать в браузер :(
пробовал и $_SERVER["DOCUMENT_ROOT"] подставлять вначале, не помогает. И в URL manager пробовал прописать, явно гдето чтото недоглядел :( ничего не помогает. В чем может быть проблема ?
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: отсылка POST сообщений вместо mail в swiftmailer

Сообщение zelenin »

test/index?g=yes - в каком браузере у вас работает такой адрес?)
phpstarter
Сообщения: 241
Зарегистрирован: 2014.12.06, 00:06

Re: отсылка POST сообщений вместо mail в swiftmailer

Сообщение phpstarter »

Код: Выделить всё

mysite.com/test/index?g=yes 
работает если рукой вбить.

в функции:

Код: Выделить всё

'test/index?g=yes'
'/test/index?g=yes'
'mysite.com/test/index?g=yes'
$_SERVER["DOCUMENT_ROOT"].'test/index?g=yes'
ни один из этих вариантов не срабатывает :(
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: отсылка POST сообщений вместо mail в swiftmailer

Сообщение zelenin »

phpstarter писал(а): 2017.08.11, 15:01

Код: Выделить всё

mysite.com/test/index?g=yes 
работает если рукой вбить.
что куда рукой вбить? у вас в коде другой адрес - он не валидный, он не будет работать в браузере.
phpstarter
Сообщения: 241
Зарегистрирован: 2014.12.06, 00:06

Re: отсылка POST сообщений вместо mail в swiftmailer

Сообщение phpstarter »

Валидный, вызывается тест контроллер в котором вызывается экшн индекс. далее я внутри экшна провожу проверку есть ли get переменная g и если есть сигнализирую об этом. И все работает если эту строчку прям в адресную строку вбить.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: отсылка POST сообщений вместо mail в swiftmailer

Сообщение zelenin »

phpstarter писал(а): 2017.08.11, 15:47 Валидный, вызывается тест контроллер в котором вызывается экшн индекс. далее я внутри экшна провожу проверку есть ли get переменная g и если есть сигнализирую об этом. И все работает если эту строчку прям в адресную строку вбить.
вот код:
curl_setopt($ch, CURLOPT_URL,
'test/index?g=yes'
);
в нем урл - 'test/index?g=yes'
этот урл нерабочий, в какой бы браузер вы его не вбили, хоть руками хоть копипастой.
phpstarter
Сообщения: 241
Зарегистрирован: 2014.12.06, 00:06

Re: отсылка POST сообщений вместо mail в swiftmailer

Сообщение phpstarter »

в браузер для проверки я вручню вбиваю

Код: Выделить всё

mysite.com/test/index?g=yes 
А в код функции по отсылке GET я вбиваю всевозможные варианты перечисленные ниже:

Код: Выделить всё

'test/index?g=yes'
'/test/index?g=yes'
'mysite.com/test/index?g=yes'
$_SERVER["DOCUMENT_ROOT"].'test/index?g=yes'
Включая и то что напрямую через браузер работает. Тоесть я почередно перепробовал все варианты, увы не срабатывают.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: отсылка POST сообщений вместо mail в swiftmailer

Сообщение zelenin »

phpstarter писал(а): 2017.08.11, 16:04 в браузер для проверки я вручню вбиваю

Код: Выделить всё

mysite.com/test/index?g=yes 
сравнить два урла можете?
mysite.com/test/index?g=yes равно test/index?g=yes?
phpstarter
Сообщения: 241
Зарегистрирован: 2014.12.06, 00:06

Re: отсылка POST сообщений вместо mail в swiftmailer

Сообщение phpstarter »

Возможно Я плохо обьяснил , извините если так но:
в своей функции я подставлял по очереди все эти варианты:
'test/index?g=yes'
'/test/index?g=yes'
'mysite.com/test/index?g=yes'
$_SERVER["DOCUMENT_ROOT"].'test/index?g=yes'

Тоесть я понимаю что test/index?g=yes? не совсем верно,
однако я и mysite.com/test/index?g=yes пробую но оно не срабатывает.

хотя вручную пашет :(
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: отсылка POST сообщений вместо mail в swiftmailer

Сообщение zelenin »

phpstarter писал(а): 2017.08.11, 16:32 Возможно Я плохо обьяснил , извините если так но:
в своей функции я подставлял по очереди все эти варианты:
'test/index?g=yes'
'/test/index?g=yes'
'mysite.com/test/index?g=yes'
$_SERVER["DOCUMENT_ROOT"].'test/index?g=yes'

Тоесть я понимаю что test/index?g=yes? не совсем верно,
однако я и mysite.com/test/index?g=yes пробую но оно не срабатывает.

хотя вручную пашет :(
урл должен начинаться с протокола - http/https. Вы столько вариантов использовали, и ни одного валидного. печаль.
phpstarter
Сообщения: 241
Зарегистрирован: 2014.12.06, 00:06

Re: отсылка POST сообщений вместо mail в swiftmailer

Сообщение phpstarter »

$_SERVER["DOCUMENT_ROOT"].'test/index?g=yes' как раз это и делает. дает полный адресс.
Но специально по Вашей рекомендации я и Ваш вариант добавил в функцию > http://mysite.com/test/index?g=yes' и всеравно не сработало :(
Хотя повторюсь если тожесамое вбить прямо в адрес строку то все пашет. Наверно я гдето туплю :(
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: отсылка POST сообщений вместо mail в swiftmailer

Сообщение zelenin »

phpstarter писал(а): 2017.08.11, 16:44и всеравно не сработало
это неинформативное описание проблемы.
предыдущий текст ошибки я вам объяснил.
someweb
Сообщения: 552
Зарегистрирован: 2017.03.09, 10:12

Re: отсылка POST сообщений вместо mail в swiftmailer

Сообщение someweb »

phpstarter писал(а): 2017.08.11, 16:44 $_SERVER["DOCUMENT_ROOT"].'test/index?g=yes' как раз это и делает. дает полный адресс.
Да ну?
http://php.net/manual/ru/reserved.variables.server.php
'DOCUMENT_ROOT'
Директория корня документов, в которой выполняется текущий скрипт, в точности та, которая указана в конфигурационном файле сервера.

Вы на себя пытаетесь постить? Хост, на котором расположен web серевер, резолвит mysite.com?
Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа. Роберт Шекли.
phpstarter
Сообщения: 241
Зарегистрирован: 2014.12.06, 00:06

Re: отсылка POST сообщений вместо mail в swiftmailer

Сообщение phpstarter »

Да я локально просто для проверки в один из контроллеров посылал запрос.
Вобщем Вопрос разрешился странным образом. Дело в том что днем я с работы это все пытался провернуть, там у меня локально на компе проэкт запущен но через порт. И почемуто не проходило видать из-за этого.
Дома уже без порта напрямую все прошло как надо.
И там и тут где надо я все писал просто не уходил утяжелять пример так что не подумайте что настолько тупил :)
Главное что с дома все заработало как ни странно :)
Большое спасибо всем за помощь!!! :)
phpstarter
Сообщения: 241
Зарегистрирован: 2014.12.06, 00:06

Re: отсылка POST сообщений вместо mail в swiftmailer

Сообщение phpstarter »

Добрый вечер всем, возникли еще парочка вопросов по этой теме, подскажите если можете:

Код: Выделить всё

имея функцию public function send(\Swift_Mime_Message $message, &$failedRecipients = null) {
}
Почемуто не срабатывает $body = $message->getBody(); ничего не возвращается.
Прито что $subject = $message->getSubject(); срабатывает на ура.

Тело письма приходится вытаскивать следующим образом:

Код: Выделить всё

        $children = $message->getChildren();
        foreach($children as &$child) {
            $body = $child->getBody();
        }
Данный код работает. Получаем текст письма.

Тоесть еще раз вопрос номер 1 : - Как быстро и напрямую получить тело письма ?
По идее нужно $message->getBody(); но не срабатывает

И еще вопрос номер2 :
Имея тело письма формата utf8 хочу применить base64_encode(); К сожалению на выходе получаю кашу соимволов. как это можно исправить ?
phpstarter
Сообщения: 241
Зарегистрирован: 2014.12.06, 00:06

Re: отсылка POST сообщений вместо mail в swiftmailer

Сообщение phpstarter »

Похоже в yii2 нет getBody для swiftmail ?
https://github.com/yiisoft/yii2/issues/ ... -245220190
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: отсылка POST сообщений вместо mail в swiftmailer

Сообщение ElisDN »

phpstarter писал(а): 2017.08.21, 22:09 Как быстро и напрямую получить тело письма ?
По идее нужно $message->getBody(); но не срабатывает
Метод getBody() работает, если письмо состоит только из одного элемента. Если больше, то в https://github.com/yiisoft/yii2-swiftma ... e.php#L255 body обнуляется и каждый новый вариант письма (Text, HTML) и каждое вложение (Attachment) со своим Content Type уже складываются в массив children.
phpstarter писал(а): 2017.08.21, 22:09 Имея тело письма формата utf8 хочу применить base64_encode(); К сожалению на выходе получаю кашу соимволов. как это можно исправить ?
base64 - это и есть кодирование в кучу символов.
phpstarter
Сообщения: 241
Зарегистрирован: 2014.12.06, 00:06

Re: отсылка POST сообщений вместо mail в swiftmailer

Сообщение phpstarter »

Еще вопрос по теме. Пытаюсь получить адресс по которому должно отправиться письмо

Код: Выделить всё

 $to = $message->getTo();
   var_dump($to);
Получаю результат

Код: Выделить всё

 array(1) { ["sdfgdsfdfgdf@dfgdfg.com"]=> NULL }
Но вот потом дальше как из этого массива его выцепить почемуто не получается :(
цикл foreach выдает Null. Что можно с этим поделать ?
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: отсылка POST сообщений вместо mail в swiftmailer

Сообщение zelenin »

phpstarter писал(а): 2017.08.29, 21:48 Но вот потом дальше как из этого массива его выцепить почемуто не получается :(
цикл foreach выдает Null. Что можно с этим поделать ?
phpstarter писал(а): 2017.08.29, 21:48Еще вопрос по теме.
вопрос по теме бы был, если она называлась "Учим php вместе".

Совет: выучи базис языка, создай простейшую форму, отправляющую комментарии, постепенно усложняй, через год приходи во фреймворки. На данный момент ты не умеешь обращаться с массивами, и это дико.
Ответить