62 ответов

47 просмотров

FROM php:7.3-fpm

jenia
FROM php:7.3-fpm

function_exists выполни на proc_open

Alexey M.
function_exists выполни на proc_open

не понял что ? Искать другую фразу ?

jenia
не понял что ? Искать другую фразу ?

https://www.php.net/manual/en/function.function-exists.php

Alexey M.
function_exists выполни на proc_open

# php steret_php.php proc_open functions are available.<br />

Alexey M.
А лог sendmail смотрел?

Не могу найти нигде

jenia
Не могу найти нигде

Обычно тут: /var/log/mail.log

Alexey M.
Обычно тут: /var/log/mail.log

Смотрел я там так же. Везде смотрел и нигде их нет

Alexey M.
Почта чем отправляется?

sendmail Dockerfile. php-fpm container # Sendmail START RUN echo "sendmail_path=/usr/sbin/sendmail -t -i" >> /usr/local/etc/php/conf.d/sendmail.ini RUN sed -i '/#!\/bin\/sh/aservice sendmail restart' /usr/local/bin/docker-php-entrypoint RUN sed -i '/#!\/bin\/sh/aecho "$(hostname -i)\t$(hostname) $(hostname).localhost" >> /etc/hosts' /usr/local/bin/docker-php-entrypoint # And clean up the image RUN rm -rf /var/lib/apt/lists/* # Sendmail END

jenia
sendmail Dockerfile. php-fpm container # Send...

Тогда другой вопрос, а как проверяется отправлено сообщение или нет?

Alexey M.
Тогда другой вопрос, а как проверяется отправлено ...

php bin/console swiftmailer:email:send --from=admin@site.com --to=evge9000@gmail.com --subject=s1 --body=b1 Вот так доходит сообщения

jenia
php bin/console swiftmailer:email:send --from=admi...

Так symfony все прекрасно отрабатывает и в файл сохраняет, и отправляет. Выходит проблема не с компонентом, а с кодом.

Alexey M.
Так symfony все прекрасно отрабатывает и в файл со...

Да возможно... У меня на компе в докере все ок происходит с тем же кодом . Вот проблема определить где что не так... Грешу на глобальные переменные. В.env самого проекта одни параметры для e-mail а в env среды контейнера - те что я передал извне. Но если отсылается через консоль почта то значит он подхватавает правильные или нет?

jenia
Да возможно... У меня на компе в докере все ок про...

У вас на компе в докере всё ок? Проблема тогда я так понимаю на проде/стейдже? Консоль на проблемном объекте отрабатывает нормально отправку? Если да, то с переменными проблем нет, консоль их подхватывает

jenia
Да возможно... У меня на компе в докере все ок про...

Попробуйте ещё, наверняка, проверку в тупую: https://swiftmailer.symfony.com/docs/sending.html#getting-failures-by-reference Если она пройдёт успешно, то значит письмо покидает php среду и уходит в почтовый агент, тогда проблема с где-то с агентом и нужно смотреть логи.

Alexey M.
У вас на компе в докере всё ок? Проблема тогда я т...

На компе все ок и все летит в hogmail. На проде я установил в docker контейнер php-fpm sendmail и черкз него из консоли все летит на почту. А вот через код - не хочет.

jenia
На компе все ок и все летит в hogmail. На проде я ...

Если вы говорите про mailhog, то там, вроде, через smtp отправка, если я не ошибаюсь

Alexey M.
Если вы говорите про mailhog, то там, вроде, через...

Да. А в проде я в переменную окружения кладу sendmail://default и как бы он должен быть подсунут и я думаю что это он используется в консоли..

Alexey M.
Покажи конфиг маилера

Еду в автобусе пока. Через часа 3 скину

jenia
Еду в автобусе пока. Через часа 3 скину

Тогда, сразу протестируй нативную отправку, а не через sendmail, то есть попробуй native://default Только проверь переменную sendmail_path в php.ini

Alexey M.
Тогда, сразу протестируй нативную отправку, а не ч...

config/packages/prod/swiftmailer.yaml swiftmailer: url: '%env(MAILER_URL)%' spool: { type: 'memory' } на скрине - это когда я поменял на native Dockerfile php-fpm … # Sendmail START RUN echo "sendmail_path=/usr/sbin/sendmail -t -i" >> /usr/local/etc/php/conf.d/sendmail.ini ....

jenia
screenshot config/packages/prod/swiftmailer.yaml swiftmailer...

php bin/console debug:config swiftmailer

Alexey M.
php bin/console debug:config swiftmailer

Current configuration for extension with alias "swiftmailer" ============================================================ swiftmailer: default_mailer: default mailers: default: url: '%env(MAILER_URL)%' spool: type: memory path: '%kernel.cache_dir%/swiftmailer/spool' id: null transport: smtp command: '/usr/sbin/sendmail -t -i' username: null password: null host: localhost port: null timeout: 30 source_ip: null local_domain: null stream_options: { } encryption: null auth_mode: null delivery_addresses: { } logging: false delivery_whitelist: { }

jenia
Current configuration for extension with alias "sw...

Так у тебя транспорт стоит smtp

jenia
а нужен sendmail ?

https://symfony.com/doc/current/reference/configuration/swiftmailer.html

Alexey M.
Попробуй

По разному попробовал. не проходит и хоть ты ему тресни. уже поставил логирование но не деляет логи даже что бы понять хоть немного что с ним ``` Current configuration for extension with alias "swiftmailer" ============================================================ swiftmailer: default_mailer: default mailers: default: url: '%env(MAILER_URL)%' spool: type: memory path: '%kernel.cache_dir%/swiftmailer/spool' id: null transport: sendmail logging: true command: '/usr/sbin/sendmail -oi -t' username: null password: null host: localhost port: null timeout: 30 source_ip: null local_domain: null stream_options: { } encryption: null auth_mode: null delivery_addresses: { } delivery_whitelist: { } ```

jenia
По разному попробовал. не проходит и хоть ты ему т...

Убери лишние параметры. Ссылку выше скидывал, что есть что

Alexey M.
Убери лишние параметры. Ссылку выше скидывал, что ...

у меня это по дефолту выскакивают. Swiftmail: swiftmailer: url: '%env(MAILER_URL)%' spool: { type: 'memory' } transport: 'sendmail' logging: true command: '/usr/sbin/sendmail -oi -t'

Alexey M.
Вот дефолт и оставь

Так так же проходит если в консоли вызывать отправку емайл а вот письма с проложения не отправляются. Я не могу понять почему он не делает логирование хотя я ему прописал ?

Alexey M.
С приложением? А без отправляется?

с консоли как отправлялось так и отправляется … php bin/console swiftmailer:email:send --from=admin@s ....

jenia
с консоли как отправлялось так и отправляется … ...

А я тебя неправильно понял, я думал ты с приложением отправляешь

jenia
когда меняю конфиг swiftmail

Хорошо, пойдем по другому. Ты из консоли отправляешь простой текст, а из приложения что шлешь?

Alexey M.
Хорошо, пойдем по другому. Ты из консоли отправляе...

public function send(User $user, Newsletter $new_newsLetter): void { $message = (new Swift_Message('Sign Up Confirmation')) ->setTo($user->getEmail()->getValue()) ->setBody($this->twig->render('mail/user/signup.html.twig', [ 'token' => $user->token, 'username' => $user->getName()->getUsername(), 'token_unsubscribe' => $new_newsLetter->getToken() ]), 'text/html'); if (!$this->mailer->send($message)) { throw new RuntimeException('Unable to send message.'); } }

jenia
public function send(User $user, Newsletter $new_...

Попробуй отправить простой текст

Alexey M.
Попробуй отправить простой текст

public function send(User $user, Newsletter $new_newsLetter): void { $message = (new Swift_Message('Sign Up Confirmation')) ->setTo($user->getEmail()->getValue()) ->setBody("privet"); if (!$this->mailer->send($message)) { throw new RuntimeException('Unable to send message.'); } По прежнему ничего не приходит ... 🙁

Alexey M.
А from где?

services.yaml Finesse\SwiftMailerDefaultsPlugin\SwiftMailerDefaultsPlugin: arguments: $defaults: from: '%env(MAILER_FROM_EMAIL)%': '%env(MAILER_FROM_NAME)%' tags: - { name: swiftmailer.default.plugin }

Alexey M.
А from где?

Захардкодил setFrom() на всякий случай. Тот же результат

jenia
services.yaml Finesse\SwiftMailerDefaultsPlugin\S...

Что-то всё больше и больше мешанины у вас. Плагин поддерживает 4 версию, а про 5 версию не уверен. Последний релиз был 3 года назад. Письмо покидает php среду (консоль тому подтверждение), но вам лучше искать логи sendmail. Скорее всего, что-то не передается и sendmail блокирует, а ещё возможно письмо блокируется спам-фильтром из-за заголовка и отсутствии ссылки для отписки и тем более DKIM подписи. А это только логи подскажут вам. Через консоль вы отправляете просто письмо с другим заголовком и другим текстом и оно уходит, а из софта вы шлете совершенно другое письмо и тут ступор. Если маилер не выкидывает ошибку - значит письмо ушло в sendmail. Посмотрите очередь sendmail - mailq. Информацию о логах ищите в конфиге sendmail.

jenia
screenshot надо где то логи нарыть

Я бы вам порекомендовал для чистоты эксперимента использовать одинаковые входные данные, а не разные - сделайте отдельную функцию и отдельный роут для её запуска, где жестко пропишите условия - такие же как в консоли, используя дефолтный конфиг и без всяких плагинов. P.s.: ну, и на будущее - для этого существует stage, идентичный проду, а на проде экспериментировать не стоит никогда - к тому же, если у вас докер, то хоть на каждую новую-ветку репы поднимайте свой стейдж.

Alexey M.
Я бы вам порекомендовал для чистоты эксперимента и...

Да там такой prod что можно и без stage 🙂 Это все мои личный проект учебный. Все захардкодил. Ничего не приходит. Ищу логи от sendmail ...

Alexey M.
Я бы вам порекомендовал для чистоты эксперимента и...

Начал больше дебожит на пройде. Получилось следующее. Все передается хорошо кроме адреса отправителя. Не понимаю почему он не цепляется на проде services.yaml …. Finesse\SwiftMailerDefaultsPlugin\SwiftMailerDefaultsPlugin: arguments: $defaults: from: '%env(MAILER_FROM_EMAIL)%': '%env(MAILER_FROM_NAME)%' tags: - { name: swiftmailer.default.plugin } …. Не компе все ок работает ..

jenia
Начал больше дебожит на пройде. Получилось следующ...

1. На компе у вас SMTP - там отправитель будет smtp-пользователь. 2. Уже ведь говорил про плагин, что он под 4-ку и не обновлялся 3 года

Alexey M.
1. На компе у вас SMTP - там отправитель будет smt...

По моему нашел ошибку. Не передается переменная в контейнер при деплое из гита через docker-compose. Попробую сделать кое что. Если он такой устаревший то как рекомендуете инжектить адрес отправителя ?

jenia
По моему нашел ошибку. Не передается переменная в ...

Я думаю, что у вас письма отправляются не из одного места (функции/компонента/бандла), то повесить сервис для отправки почты - было бы логичнее, где и пропишите установку отправителя из конфига, логирование и остальное

Похожие вопросы

Обсуждают сегодня

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Ребят, подскажите, пожалуйста, почему в префиксе к ассетам, которые генерируются через фильтр | theme в шаблоне, стал вдруг появляться index.php? Вот так выглядит ссылка на а...
Виталий
1
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
Карта сайта