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 :

Problème avec les partials et SwiftMailer [1.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 73
    Par défaut Problème avec les partials et SwiftMailer
    Bonjour,

    Quelqu'un a déjà utiliser SwiftMailer?
    J'ai un message d'erreur lorsque je veux l'utiliser avec des partials.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $mailer = new Swift( new Swift_Connection_NativeMail());
                $message = new Swift_Message("Watch My Desk: Confirmation");
     
               // Render message parts
                $mailContext = array ("code" => substr( md5( $membres->getIpInscription() . $membres->getLogin() . $membres->getDateInscription() ),0, 8), "login" => $membres->getLogin());
                $message->attach( new Swift_Message_Part($this->getPartial('mail/confirmationCreationHtml', $mailContext), 'text/html'));
                $message->attach( new Swift_Message_Part($this->getPartial('mail/confirmationCreationText', $mailContext), 'text/plain'));
     
                // Send
                $mailer->send($message, $membres->getEmail(), sfConfig::get('app_site_emailnoreply'));
                $mailer->disconnect();
    Pour le code précédent, j'ai créé un module mail avec un partial _confirmationCreationtext.php dans les templates.
    J'ai placé ce code dans une méthode surchagée save() d'un formulaire pour envoyer un mail de confirmation à la suite.
    Mais j'ai le message suivant :
    "unknown method getPartial"

    pour info, ça fonctionne (à peu près) pour envoyer un mail tout simple (sans template).

    C'est curieux.
    Quelqu'un a une idée?

  2. #2
    Membre chevronné Avatar de sacricri
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    324
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 324
    Par défaut
    Bonsoir,

    Je ne suis pas sûr que ce soit l'endroit idéal pour placer une méthode d'envoi de mail.

    Je pense que ce serait plus du côté de l'action qu'il faudrait regarder (enfin, si c'est pas de l'admin generator) car le $this->getPartial() est une méthode de sfAction.

    Par contre, tu peux toujours tester avec la méthode du helper PartialHelper::get_partial() (en pensant à loader le helper).

  3. #3
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    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
    Par défaut
    Tu n'indiques pas où tu places ton code. So tu l'utilise dans une action, "this" représentera un objet de type sfAction et donc a un accès à getPartial()..

    La méthode que tu utilises est utilisée dans le manuel plus avec symfony, les mails, en anglais

    Par-contre, on y renseigne le champ body, et non pas par un attachement, qui lui attend plutôt un formulaire.

    Reste à voir comment mettre dans le body tu peux faire entrer la version html et la version txt.

    Vérifie ce que this représente ici. Ce devrait être un sfAction et cela devrait marcher.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 73
    Par défaut
    Bonjour,

    Merci à vous deux.
    Vous avez raison je l'avais placé au mauvais endroit.

    J'ai donc créé une fonction sendMail() dans action.class.php de mon module contact, appelée par le processform, afin que ça envoie le mail une fois un formulaire d'enregistrement de nouveau contact traité.

    Je n'ai donc plus ce problème de getPartial

    Par contre, j'ai un nouveau souci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    The sender parameter must either be a valid string email address or an instance of Swift_Address.
    Apparemment il n'aime la forme de mon adresse mail??
    J'ai essayé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $to = new Swift_Address('mail@mail.com');
                $mailer->send($message, $to, sfConfig::get('noreply-email'));
    Mais ça ne fonctionne pas... une idée?

  5. #5
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    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
    Par défaut
    Désolé, mais je n'ai pas encore testé personnellement ce composant. C'est prévu, mais pas dans les 15 prochains jours...

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 73
    Par défaut
    Laissez tomber, je suis vraiment nul.

    Dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    The sender parameter must either be a valid string email address or an instance of Swift_Address.
    Il fallait bien lire THE SENDER !!
    Et moi je m'acharnais sur la forme du destinataire, alors que le problème venait de la forme de mon email d'expéditeur.
    Donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $from = new Swift_Address(sfConfig::get('noreply-email'));
    Désolé pour le dérangement.

    (Par contre, ça fonctionne une fois, mais si je réessaie ça ne m'envoie plus rien, et je n'ai pas de message d'erreur).

    Merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec les fonctions
    Par jvachez dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 13/01/2004, 12h06
  2. [Postgresql]Problème avec les fonctions ...
    Par fet dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/10/2003, 09h04
  3. Problème avec les apostrophes
    Par misterbillyboy dans le forum Requêtes
    Réponses: 2
    Dernier message: 15/07/2003, 16h39
  4. Problème avec les fichiers .JPG
    Par cprogil dans le forum Langage
    Réponses: 5
    Dernier message: 10/06/2003, 15h44
  5. []Problème avec les formulaires Outlook
    Par Invité dans le forum Outlook
    Réponses: 6
    Dernier message: 05/12/2002, 09h59

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