IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Envoi d'un email avec Swift Mailer


Sujet :

Symfony PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 8
    Points : 3
    Points
    3
    Par défaut Envoi d'un email avec Swift Mailer
    Bonjour,

    Je développe actuellement un projet avec Symfony (version 1.4, le plugin Swift Mailer est normalement intégré) et je rencontre un problème pour envoyer des emails.
    J'ai codé une page de contact par le biais de laquelle un internaute devra pouvoir envoyer un message au site. Ce formulaire est très simple et est constitué d'un champ Nom/prénom/email/message.

    Voici le code de mon actions.class

    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
    public function executeIndex(sfWebRequest $request)
      {
    		$this->form = new ContactForm();
     
     
    		if ($request->isMethod('post'))
    		{
    			$this->form->bind($request->getParameter('contact'), $request->getFiles('contact'));
     
     
    			if($this->form->isValid())
    			{
    				//$contact = $this->form->save();
     
    				$values=$this->form->getValues();
     
    				 $transport = Swift_SmtpTransport::newInstance('smtp.live.com', 587)
    					->setUsername('mon_user_name')
    					->setPassword('mon_mdp');
     
    				$mailer = Swift_Mailer::newInstance($transport);
     
    				$message = Swift_Message::newInstance()
    					->setFrom('adresse_expediteur')
    					->setTo('adresse_destinataire')
    					->setBody($this->form->getValue('Message'));
    					->setBody('Voila un beau message');
     
     
     
    				$mailer->send($message); 
     
    				$mailer = $this->getMailer();
     
    				$this->getMailer()->composeAndSend(
    				  'adresse_expediteur',
    				  'adresse_destinataire',
    				  'Subject',
    				  'Body'
    				);
     
    				$this->redirect('contact/merci?'.http_build_query($values));
    			}
    		}
    Évidemment, j'ai remplacé mon_user_name, mon_mdp, adresse_expediteur et adresse_destinataire par les valeurs correspondantes, mais cela ne marche pas.
    Je n'arrive pas à localiser le problème. Auriez-vous une petite idée ?

    Merci d'avance !

  2. #2
    Membre habitué

    Profil pro
    Développeur Web
    Inscrit en
    Mai 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2007
    Messages : 51
    Points : 157
    Points
    157
    Par défaut
    Pour moi, vite fait, c'est ton ";" , aussi je suis pas sure que l'on puisse ajouter plusieurs ligne de "->setBody" ? Essaye avec une seule ligne pour tester si cela ne fonctionne toujours pas ?

    ->setBody($this->form->getValue('Message'));
    ->setBody('Voila un beau message');

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Merci pour ta réponse, mais je crois en fait que le problème vient tout simplement du fait que je teste l'envoie en local...

    A moins de m'inscrire sur un serveur web gratuit, je ne vois pas de moyen de tester l'envoi d'email en local. Auriez-vous une idée ?
    Et si jamais, connaissez-vous des serveurs web gratuits pas mal pour faire mes tests ?

    Merci d'avance !

  4. #4
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Points : 8 486
    Points
    8 486
    Par défaut
    Tu peux paramétrer swift pour qu'il utilise un serveur un smtp avec ou sans authentification.

    Ceci doit te permettre d'envoyer depuis ton poste, pour peu que tu sois connecté à internet.

    Si non, des hébergements de qualités capable de travailler avec symfony et qui donnent un libre accès à l'envoie de mail, non, je ne connais pas. Même en payant, c'est déjà pas évident...
    Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).

    • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
    • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
    • Une discussion est terminée ? Alors le bouton est votre ami !

  5. #5
    Membre du Club
    Inscrit en
    Avril 2010
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 80
    Points : 42
    Points
    42
    Par défaut
    En local avec une connexion internet, il suffit de configurer ton fichier php.ini

    Tu fixes le smtp et le port que tu utilises
    Dans ce même fichier tu décommentes la ligne contenant " openssl "
    Tu redémarre le serveur.

    sur symfony 1.4 tu peux aussi configurer l'envoi d'email ainsi:
    dans le fichier factories.yml
    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
     
    prod:
      logger:
        class:   sfNoLogger
        param:
          level:   err
          loggers: ~
     
      mailer:
        class: sfMailer
        param:
          logging:           %SF_LOGGING_ENABLED%
          charset:           %SF_CHARSET%
          delivery_strategy: realtime
          transport:
            class: Swift_SmtpTransport
            param:
              host:       host utilisé
              port:       port utilisé
              encryption: ssl
              username:   s'il y en a un
              password:   s'il y en a un
    et dans ton action
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $mailing = $this->getMailer()->compose(
    					$sender,
    					$receiver,
    					$objet,
    					'')->
                                            setBody($body, 'text/html');
     
     
     $this->result = $this->getMailer()->send($mailing);
    Relances ton script; si ça ne marche pas va faire un tour et tu reviens , tu auras les idées plus clair!

Discussions similaires

  1. [Débutant] Envoi d'un email avec adresse destinataire issue d'une textbox
    Par Attila54 dans le forum VB.NET
    Réponses: 10
    Dernier message: 12/06/2012, 10h24
  2. Envoi piece jointe email avec shellexecute
    Par PhilLU dans le forum Débuter
    Réponses: 4
    Dernier message: 27/06/2011, 11h13
  3. Envoi d'un email avec php
    Par -Fly- dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 10/04/2011, 18h32
  4. envoi d'un email avec piece jointe php / classe mime_mail
    Par xunil2003 dans le forum Langage
    Réponses: 1
    Dernier message: 01/04/2010, 03h12
  5. [OL-2007] Planifier (retarder) l'envoi d'un email avec Automation
    Par olive_tp dans le forum VBA Outlook
    Réponses: 2
    Dernier message: 14/11/2009, 22h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo