2015-11-13 3 views
0

Я новичок на Symfony .. Я хотел бы отправить письмо с быстрой почтовой программой, но я не понимаю, если эта услуга включена в FOSUserbundle или нет ..Symfony2 быстр почтовик, как отправить

я пишу этот код в контроллере:

 $this->get('mailer')->send($message); 
$mailer = Swift_Mailer::newInstance(); 

$message = Swift_Message::newInstance() 
->setSubject('Hello Email') 
    ->setFrom('[email protected]') 
    ->setTo('[email protected]') 
    ->setBody('You should see me from the profiler!') 
; 

// Pass a variable name to the send() method 
if (!$mailer->send($message, $failures)) 
{ 
var_dump($failures); 
} 

в config.yml я есть это для FOSUserBundle

# Swiftmailer Configuration 
swiftmailer: 
    transport: "%mailer_transport%" 
    host:  "%mailer_host%" 
    username: "%mailer_user%" 
    password: "%mailer_password%" 
    spool:  { type: memory } 

# Routing 
be_simple_i18n_routing: ~ 

# FOSUserBundle Configuration 
fos_user: 
    db_driver: orm # other valid values are 'mongodb', 'couchdb' and 'propel' 
    firewall_name: main 
    user_class: Dt\EcBundle\Entity\User 
    profile: 
     form: 
      type: dt_ec_profile 
    registration: 
     confirmation: 
      enabled: true 
     form: 
      type: dt_ec_registration 
    from_email: 
     address:  [email protected] 
     sender_name: consulent 
    service: 
     mailer: fos_user.mailer.twig_swift 
    resetting: 
     email: 
      template: DtEcBundle:User:resetting.email.html.twig 

Как я могу сделать для отправки и электронной почты? Благодаря

Редактировать с parameters.yml

# This file is auto-generated during the composer install 
parameters: 
    database_driver: pdo_mysql 
    database_host: ----- 
    database_port: null 
    database_name: ------ 
    database_user: root 
    database_password: ------- 
    mailer_transport: smtp 
    mailer_host: 127.0.0.1 
    mailer_user: null 
    mailer_password: null 
    locale: it 
    secret: ThisTokenIsNotSoSecretChangeIt 
    domain: ----- 
    opentok_key: ---- 
    opentok_secret: ----- 
+0

Ваш код, кажется, подходит для отправки электронной почты. В чем проблема ? – chalasr

+0

@chalas_r для FOSUSERBUNDLE мой код хорош, но я не undestand beacuse не работает с другим контроллером с этим кодом .. Как я могу это сделать? Я вижу журнал, но письмо не может отправить –

ответ

1

Symfony2 имеет важное Принципе, все компоненты являются автономными.

Для каждой части Symfony вы будете использовать, если вы можете увидеть имеющуюся у нее конфигурацию в своем config.yml, вы должны ее настроить. Особенно, если конфигурация пуста.

Как вы можете видеть в своем config.yml, параметры вызывают вместо необработанных выражений.

Фактически, файл конфигурации parameters.yml существует в том же каталоге (config/). Ваш config.yml вызывается автоматически, чтобы получить необходимые параметры. Установите свою конфигурацию электронной почты в свой parameters.yml (пароль, пользователь, хост ..), , а затем вы можете использовать его в своих пакетах, включая FOSUserBundle и другие внешние пакеты.

Пример конфигурации SwiftMailer для локального постфикса:

mailer_transport: smtp 
mailer_host: 127.0.0.1 
mailer_user: [email protected] 
mailer_password: yourpwd 

Все, что вам нужно сделать трюк заключается в документации. https://symfony.com/doc/current/cookbook/email/email.html

Have a good experience with Symfony!

Смежные вопросы