Не удается заставить sendmail работать с Swiftmailer Bundle в Windows - PullRequest
0 голосов
/ 22 февраля 2019

У меня есть следующие настройки / параметры:

  • PHP 7.1.26
  • Windows 10 x64 Professional
  • symfony / swiftmailer-bundle 3.5.2
  • symfony / console 4.1.11

Я хочу настроить swiftmailer-bundle на использование fake sendmail, установленного на

C:\Program Files (x86)\sendmail

Хотя я уже настроил sendmail_path в PHP, пакет swiftmailer на самом деле вообще не использует эту переменную PHP.Вместо этого по умолчанию путь к исполняемому файлу sendmail равен

/usr/sbin/sendmail -bs

Однако, начиная с версии 3.0.4, путь (т. Е. Полная команда) должен быть настраиваемым: https://github.com/symfony/swiftmailer-bundle/pull/185

Я поставил

swiftmailer:
    mailers:
        default:
            transport: sendmail
            command: 'C:\Program Files (x86)\sendmail\sendmail.exe -t'

в мой app/config/config.yml и перестроил кеш.Однако, когда я хочу отправить тестовое электронное письмо с помощью

swiftmailer:email:send

, он по-прежнему использует команду по умолчанию - что, конечно, не удается с

[Swift_TransportException]
Process could not be started [The system cannot find the specified path.]

. Я не уверен, что еще можно попробовать,Я действительно хотел бы использовать ложную настройку sendmail в моей локальной среде, потому что sendmail можно настроить так, чтобы принудительно отправлять любую электронную почту на определенный адрес (мой адрес) для тестирования и всегда использовать определенный SMTP.

Этовыход debug:config swiftmailer:

swiftmailer:
    default_mailer: default
    mailers:
        default:
            transport: sendmail
            host: 127.0.0.1
            username: null
            password: null
            port: 25
            encryption: null
            command: 'C:\Program Files (x86)\sendmail\sendmail.exe -t'
            url: null
            timeout: 30
            source_ip: null
            local_domain: null
            auth_mode: null
            delivery_addresses: {  }
            logging: false
            delivery_whitelist: {  }

1 Ответ

0 голосов
/ 05 марта 2019

обновление открытая проблема найдена на github: https://github.com/symfony/swiftmailer-bundle/issues/244

, так что это был трудный путь.но попробуйте это в вашем swiftmailer.yaml:

swiftmailer:
    default_mailer: default
    mailers:
        default:
            transport: sendmail
            command: '%env(SENDMAIL_COMMAND)%'
            timeout: 20

и добавьте новую переменную env в ваш файл .env:

SENDMAIL_COMMAND='C:\Program Files (x86)\sendmail\sendmail.exe -t'

это было найдено при отладке файла SwiftmailerExtension.phpв строке 96 вы можете найти, и если заявление ведьмы может помочь понять, как оно работает

...