Posts Tagged ‘email’

Tester la qualité des emails envoyés par votre serveur

Voici un outil pratique pour tester la qualité des emails qui sont envoyés par votre serveur : https://www.mail-tester.com/

Mail tester

Cet outil teste les différents paramètres dont :

  • SPF
  • Sender ID
  • DKIM
  • Blacklists les + connues

Et il donne également les solutions pour corriger les différents problèmes de manière rapide.
Pour ma part je suis passé de 2.1 à 9 🙂…

Pas de commentaires

Magento : Envoyer un email de confirmation au client qui utilise le formulaire de contact

Voici un petit article qui vous permettra d’ajouter simplement une fonctionnalité toute bête mais qui peut être très pratique.
L’envoi d’un message de confirmation à l’utilisateur qui vient d’envoyer un message via le formulaire de contact.

Pour cet exemple, je me suis fixé les contraintes suivantes :

  • Cet envoi doit être lié via un module spécifique
  • Ne pas réaliser de surcharge du module “Contacts” existant
  • Le contenu de l’email doit pouvoir être géré depuis les emails transactionnels.

C’est parti, pour cela on va donc créer un module qu’on va appeler Hhennes_Contacts.
Avec le fichier de configuration suivant : ( Hhennes_Contacts/etc/config.xml )

<?xml version="1.0" encoding="UTF-8"?>
<config>
    <modules>
        <Hhennes_Contacts>
            <version>0.1.0</version>
        </Hhennes_Contacts>
    </modules>
    <global>
        <models>
            <hhennes_contacts>
                <class>Hhennes_Contacts_Model</class>
            </hhennes_contacts>
        </models>
        <!-- Configuration de l'email transactionnel -->
        <template>
            <email>
                <contacts_email_recipient_email_template translate="label" module="hhennes_contacts">
                    <label>Formulaire de contact destinataire</label>
                    <file>contact_form_recipient.html</file>
                    <type>html</type><!-- format : text | html -->
                </contacts_email_recipient_email_template>
            </email>
        </template>
    </global>
    <frontend>
        <events>
           <!-- Evenement qui est exécuté APRES le traitement du controller contacts_index_post -->
            <controller_action_postdispatch_contacts_index_post>
                <observers>
                    <hhennes_contacts>
                        <class>hhennes_contacts/observer</class>
                        <method>sendEmailToRequester</method>
                    </hhennes_contacts>
                </observers>
            </controller_action_postdispatch_contacts_index_post>
        </events>
    </frontend>
    <!-- Valeur par défaut pour l'email transactionnel -->
    <default>
        <contacts>
            <email>
                <recipient_email_template>contacts_email_recipient_email_template</recipient_email_template>
            </email>
        </contacts>
    </default>
</config>

Ce fichier de configuration, permet de déclarer les paramètres suivants de notre module:

  • Ajout d’une action sur l’événement controller_action_postdispatch_contacts_index_post ( qui est exécuté après l’action contacts_index_post )
  • Définition d’un email transactionnel, configurable depuis l’administration, ainsi que sa valeur par défaut

Passons à présent au fichier system.xml, ( Hhennes_Contacts/etc/system.xml )
Celui-ci va nous permettre de choisir l’email associé depuis la configuration dans l’administration (via l’onglet de configuration “contacts” de magento )

<?xml version="1.0" encoding="UTF-8"?>
<config>
    <sections>
        <contacts>
            <groups>
                <email>
                    <fields>
                    <recipient_email_template translate="label">
                        <label>Email Template Recipient</label>
                        <frontend_type>select</frontend_type>
                        <source_model>adminhtml/system_config_source_email_template</source_model>
                        <sort_order>40</sort_order>
                        <show_in_default>1</show_in_default>
                        <show_in_website>1</show_in_website>
                        <show_in_store>1</show_in_store>
                    </recipient_email_template>
                </fields>
                </email>
            </groups>
        </contacts>
    </sections>
</config>

La logique du module sera placé dans le fichier Hhennes_Contacts/Model/Observer.php

<?php
/**
 * Description of Observer
 *
 * @author herve
 */
class Hhennes_Contacts_Model_Observer {
    
    const XML_PATH_EMAIL_TEMPLATE_RECIPIENT = 'contacts/email/recipient_email_template';
     
    /**
     * Envoi d'un email au demandeur
     * @return type
     * @throws Exception
     */
    public function sendEmailToRequester($observer)
    {   
        //Récupération des données envoyées et validation     
        $post = $observer->getControllerAction()->getRequest()->getPost();
 
        if ( $post ) {
            $translate = Mage::getSingleton('core/translate');
            $translate->setTranslateInline(false);
            try {
                $postObject = new Varien_Object();
                $postObject->setData($post);
 
                $error = false;
 
                if (!
Pas de commentaires

Magento : Ajouter un champ de confirmation d’email sur les formulaires d’inscription

Afin de vous mettre à l’abri des erreurs de saisies d’email lors de la création de compte sur Magento et des ses multiples effets de bords ( Emails et informations perdus, réassurance et expérience client médiocre … ) voici comment mettre en place une solution rapide sur vos formulaires de création de compte.

Le principe est relativement simple, nous allons rajouter un nouveau champ “Confirmation email”  dans lequel l’utilisateur devra saisir à nouveau son adresse email.
Les 2 saisies de l’email permettent déjà de réduire considérablement les erreurs de frappe.

Ce tutoriel est réalisé sur la version 1.9.2 de Magento avec le thème rwd en base.

Modification des templates

Pour commencer il va falloir dupliquer les fichiers suivants contenant les formulaires de création de compte.
Du thème rwd : app/design/frontend/rwd/default/template/ dans votre thème app/design/frontend/yourtheme/default/template/

  • persistent/customer/form/register.phtml ( Création de compte standard )
  • persistent/checkout/onepage/billing.phtml ( Création de compte dans le checkout )

 

Dans le fichier register.phtml rechercher le code suivant :

<li>
<label for="email_address" class="required"><em>*</em><?php echo $this->__('Email Address') ?></label>
<div class="input-box">
<input type="email" autocapitalize="off" autocorrect="off" spellcheck="false" name="email" id="email_address" value="<?php echo $this->escapeHtml($this->getFormData()->getEmail()) ?>" title="<?php echo $this->quoteEscape($this->__('Email Address')) ?>" class="input-text validate-email required-entry" />
</div>
</li>

Puis ajouter à la suite le code suivant, qui va rajouter un nouveau champ de vérification email
Notez bien la classe validate-confirm-email qui va correspondre à la règle de validation que nous allons créer.…

Pas de commentaires

Magento : email queue non envoyée

J’ai rencontré récemment un problème avec l’envoi des emails de confirmation de commande sur magento version 1.9.0.1.
Contrairement à de plus anciennes versions de magento (et c’est mieux ainsi 🙂 ), les emails ne sont plus envoyés directement après le passage d’une commande.

Ils sont stockés dans la table core_email_queue .

Puis il sont envoyés 100 par 100 via la tâche cron core_email_queue_send_all toutes les minutes.

Sur le serveur hébergeant le site Magento ( dans un environnement chrooté) , cette tâche cron ne fonctionnait pas et le fichier exception.log était remplis de messages de ce type :

exception 'Zend_Mail_Transport_Exception' with message 'Unable to send mail. ' in /www/lib/Zend/Mail/Transport/Sendmail.php:137
Stack trace:
#0 /www/lib/Zend/Mail/Transport/Abstract.php(348): Zend_Mail_Transport_Sendmail->_sendMail()
#1 /www/lib/Zend/Mail.php(1194): Zend_Mail_Transport_Abstract->send(Object(Zend_Mail))
#2 /www/app/code/core/Mage/Core/Model/Email/Queue.php(241): Zend_Mail->send()
#3 [internal function]: Mage_Core_Model_Email_Queue->send(Object(Mage_Cron_Model_Schedule))
#4 /www/app/code/core/Mage/Cron/Model/Observer.php(325): call_user_func_array(Array, Array)
#5 /www/app/code/core/Mage/Cron/Model/Observer.php(72): Mage_Cron_Model_Observer->_processJob(Object(Mage_Cron_Model_Schedule), Object(Mage_Core_Model_Config_Element))
#6 /www/app/code/core/Mage/Core/Model/App.php(1338): Mage_Cron_Model_Observer->dispatch(Object(Varien_Event_Observer))
#7 /www/app/code/core/Mage/Core/Model/App.php(1317): Mage_Core_Model_App->_callObserverMethod(Object(Mage_Cron_Model_Observer), 'dispatch', Object(Varien_Event_Observer))
#8 /www/app/Mage.php(448): Mage_Core_Model_App->dispatchEvent('default', Array)
#9 /www/cron.php(77): Mage::dispatchEvent('default')
#10 {main}
Pas de commentaires

Mantis Bugtracker : Plugin Envoi de pièces jointes par emails

Ces dernières semaines, j’ai perdu pas mal de temps avec mantis bugtracker et la gestion des pièces jointes, c’est pourquoi après la réalisation d’un plugin d’upload multiple Drag & Drop , voici encore un nouveau plugin qui vous fera gagner du temps dans la gestion des pièces jointes et des bugs.

Le principe de fonctionnement du plugin EmailFile est très simple :

Il suffit d’envoyer un email pour que  les pièces jointes et les captures d’écrans de cet email  soient automatiquement ajoutées au bug souhaité.

L’association des pièces jointes au bug est gérée via l’objet de votre email.
Si vous souhaitez par exemple , ajouter des pièces jointes au bug : 355
l’objet de votre email pourrait être le suivant “355 a la suite le texte que vous voulez”

Installation et configuration du module

Pour commencer télécharger la dernière version du module : MantisEmailFile
Ce module est dépendant du plugin “Jquery” que vous pouvez télécharger depuis l’adresse suivante : https://github.com/mantisbt-plugins/jquery

Déposer les fichiers des plugins téléchargés via ftp dans le dossier “plugins” de votre bugtracker.…

Pas de commentaires


Compte Github