Bonjour,
je veux que lorsque un utilisateur s"inscrit , il reçoit un mail de confirmation.
Je cherche pas de solution liée au FOSUSer .
En contrôleur j'ai mis :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
 
  public function registerAction(Request $request) {
        $manager = $this->get('collectify_security_manager');
 
        $em = $this->getDoctrine()->getManager();
        $user = new Utilisateur();
        $form = $this->createFormBuilder()
                ->add('login', 'text', array(
                    'required' => TRUE,
                    'attr' => array(
                        'placeholder' => 'What\'s your name?',
                        'pattern' => '.{5,}' //minlength
                    )
                ))
                ->add('email', 'email', array(
                    'required' => TRUE,
                    'attr' => array(
                        'placeholder' => 'So I can get back to you.'
                    )
                ))
                ->add('password', 'repeated', array(
                    'required' => TRUE,
                    'type' => 'password',
                    'invalid_message' => 'Les mots de passe doivent correspondre',
                    'options' => array('required' => true),
                    'first_options' => array('label' => 'Mot de passe'),
                    'second_options' => array('label' => 'Mot de passe (validation)'),)
                )
                ->getForm();
 
        $request = $this->getRequest();
        $form->bind($request);
 
        $login = $form["login"]->getData();
        $email = $form["email"]->getData();
        $password = $form["password"]->getData();
 
        $OK = false;
        if (($login != NULL) && ($email != NULL) && ($password != NULL)) {
            $user->setLogin($login);
            $user->setEmail($email);
            $user->setPassword(sha1(md5($password)));
            $user->setPrivilege('ADMIN');
            $user->setEnabled(TRUE);
            $user->setDatelog(new \DateTime());
            $EXISTE = $manager->donneruservalid($user);
            if ($EXISTE != TRUE) {
                $em->persist($user);
                $em->flush();     
                $OK = TRUE;
                  $managermail = $this->get('collectify_mail_manager');
                  $managermail->envoiMail($user);  /// renvoie de mail au membre  
            } else {
                $this->get('session')->getFlashBag()->set('message', 'Existe déja');
            }
        }
        if ($OK === TRUE) {
            $session = new Session();
            $session->clear(); /// detruire la session avant de la start
            $session->start();
            $session->set('user', $user);
 
            return $this->redirect($this->generateUrl('my_app_backoffice_homepage'));
        } else {
            return $this->render('MyAppBackofficeBundle:admin:register.html.twig', array(
                        'form' => $form->createView()
            ));
        }
    }
et dans le service mail , j"ai:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
class Mail {
 
    protected $container;
 
    public function setContainer($container) {
        $this->container = $container;
    }
 
    public function __construct() {
    }
 
    public function envoiMail($user) {
        $mailer = $this->container->get('mailer');
        $transport = \Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, 'ssl');
        $mailer = \Swift_Mailer::newInstance($transport);
        $message = \Swift_Message::newInstance('Test')
                ->setSubject('Confirmation de l\'inscription')
                ->setFrom('admin@gmail.tn')
                ->setTo($user->getEmail())
                ->setBody('Pour activer votre compte veuiller cliquer sur le lien ');
        $this->get('mailer')->send($message);
        /**      mail de confirmation    * */
    }
 
}
j"ai des exceptions comme :
Error: Call to a member function get() on a non-object
Notice: Undefined property: :$container ..

merci d'avance