mail

Webform : Envoyer le mail sans les valeurs vides

Bonjour,

J'ai un formulaire de devis qui permet aux utilisateurs de choisir les meubles qu'ils ont grâce à des champs "number".

Par défaut les champs "number" sont à "0" et l'utilisateur peut choisir dans une liste de "1" à "5" pour déterminer le nombre de chaises, par exemple, qu'il possède.

La liste des meubles est conséquente et j'aimerais que dans le mail que je reçois, il n'apparaisse que les champs "number" qui ont été remplis. Ainsi seuls les meubles que détiens l'utilisateur seront affichés dans le mail.

Pour imager mes explications :

Par benftwc

[Drupal] Envoyer un mail avec drupal_mail

drupal_mail

Pour envoyer un mail avec drupal_mail(), je vous invite à lire cette implémentation (réutilisable) du « comment faire » ;)

<?php


/**
 *
 * Implements hook_menu()
 * Call a custom form as menu callback
 * @return
 *   $items array of menu items created programmatically
 */
function test_menu() {

  $items['test'] = array(
    'title' => t('Send Email Using Drupal mail'),
    'page callback' => 'drupal_get_form',
    'page arguments' => array('test_custom_form', 1),
    'access arguments' => array('access content'),
    //'file' => 'test.inc',
    //'file path' => drupal_get_path('module', 'test') . '/includes',
  );
  return $items;
}


/**
 * fucntion to return custom form on menu callback
 * @param 
 *   type $form an array consists of form fields
 * @param 
 *   type $form_state an array consists of form fields values input a user
 * @return 
 *   $form returns array of dorm fields.
 */
function test_custom_form($form, $form_state) {

  $form = array();
  $form['email'] = array(
    '#type' => 'textfield',
    '#title' => 'To Email',
    '#prefix' => '<div id="email-field-wrapper">',
    '#suffix' => '</div>',
    '#required' => TRUE,
  );
  $form['from_email'] = array(
    '#type' => 'textfield',
    '#title' => 'From Email',
    '#prefix' => '<div id="from-email-address">',
    '#suffix' => '</div>',
    '#required' => TRUE,
  );
  $form['email_body'] = array(
    '#type' => 'textarea',
    '#title' => 'Email Body',
    '#prefix' => '<div id="email-body">',
    '#suffix' => '</div>',
    '#required' => TRUE,
  );
  $form['submit_form'] = array(
    '#type' => 'submit',
    '#value' => t('Send Email'),
    '#submit' => array('test_custom_form_submit'),
  );
  $form['#validate'] = array('test_custom_form_validation');
  return $form;
}

/**
 * validation function for custom form
 * check for vadlidation for email address.
 * @param type $form
 * @param type $form_state 
 */
function test_custom_form_validation($form, &$form_state) {
  $mail = $form_state['values']['email'];
  $from_email = $form_state['values']['from_email'];
  if (!valid_email_address($mail)) {
    form_set_error('email', t('Please Enter a valid to email address.'));
  }

  if (!valid_email_address($from_email)) {
    form_set_error('from_email', t('Please Enter a valid from email address.'));
  }
}

function test_custom_form_submit($form, &$form_state) {
  drupal_set_message("form is submitted, thanks");
  $email_content = get_mail_content($form_state);
  $params = array('body' => $email_content);
  $key = 'test_email';
  $to = $form_state['values']['email'];
  $from = $form_state['values']['from_email'];
  $mail = drupal_mail('test', $key, $to, language_default(), $params, $from);
  // for better understanding,you can uncomment the following
 // dpm($mail);

}

/**
 * Implements hook_mail()
 * @param 
 *   type $key to decide which email body to sent on basis of key parameter inacese of multiple email content
 * @param 
 *   type $message the email content to be sent.Message array contains 'subject and body ' for the email.
 * @param 
 *   type $params using to get the cusotm email content from a function.This can be used in my other ways aslo as per need.
 */
function test_mail($key, &$message, $params) {
  $language = $message['language'];
  switch ($key) {
//switching on $key lets you create variations of the email based on the $key parameter
    case 'test_email':
      $message['subject'] = t('Test Email');
//the email body is here, inside the $message array
      $message['body'][] = $params['body'];
      break;
  }
}

/**
 * function to get the html formatted email content
 * @param 
 *   type $form_state to get values from form fields.
 * @return 
 *   $body type string return the html email content 
 */
function get_mail_content($form_state) {

  $email_to = $form_state['values']['email'];
  $pos = strpos($email_to, '@');
  $user_name = substr($email_to, 0, $pos);
  $body = '';
  $body .= 'Hi ' . $user_name . '<br>';
  $body .= 'Please find my test email. <br>';
  $body .= $form_state['values']['email_body'] . '<br>';
  $body .= 'Thanks<br>';
  $body .= 'TestTeam';
  return $body;
}

The post [Drupal] Envoyer un mail avec drupal_mail appeared first on Benftwc.

Comment envoyer des mail au format HTML ?

Bonjour,

Je ne parviens pas à envoyer un mail au format HTML avec webform dans Drupal 7.
Je renvoie un mail à la soumission du formulaire, j'ai laissé template par default comme cela je récris webform-mail-[id].tpl.php pour le personnaliser l'écrire en HTML.

Dans mon template.php, j'ai ajouté la fonction suivante :

mail HTML pour les mails de drupal

Bonjour,

Je cherche depuis ce matin comment faire pour que les mails automatiques envoyés par drupal 'inscription, changement mot de passe etc) soient envoyés en HTML?
Et puis surtout, comment faire pour que je puisse customiser chacun de ces mails HTML (Via un éditeur dans l'admin?)

J'ai installé HTML mail mais j'avoues ne rien y comprendre ?!

Merci beaucoup à tous pour votre aide!

[résolu] Récupérer [mail] dans la table [commerce_order] pour affichage ds une View

Hello,

J'ai construit une view dans la "boutique" du module drupal commerce pour afficher les résultats des commandes passées dans notre "boutique". Dans cette view, je pioche différents informations (Nom, prenom, adresse, montant de la facture, etc...) que j'affiche par la suite par produit. Bref pour faire très simple, je fais une view un peu plus belle que la version standard :)

Webform : Information invalide. Données non soumises.

Bonjour,

j'ai un problème avec Webform.

J'ai installé PHPMailer qui fonctionne, je recois le mail de test.

J'ai créé un formulaire avec un champs text (pour le test), et configuré l'adresse email (la mienne pour recevoir le contenu du champs).

Après avoir rempli le champs text, j'envoie le formulaire mais il y a une erreur qui surgit :

"Information invalide. Données non soumises."

Quelqu'un peut m'aider?

[Résolu] Envoi de mail à différents users

Bonjour
Avec la fonction "_nodeaccess_get_grants();" j'obtiens le résultat ci-dessous,j'aimerais maintenant extraire l'adresse mail de chaque puis leur en envoyé un message avec peut être cette fonction "drupal_mail($module, $key, $to, $language, $params = array(), $from = NULL, $send = TRUE)" mail je n'arrive pas à récupérer l'adresse de messagerie, quelqu'un peut il m'indiquer une piste.
D'avance merci.

[uid] => Array
(
[114] => Array
(
[name] => Milou
[keep] => 1

Simplenews, liens faux en bas du mail reçu

Bonjour,

Je rencontre un souci avec le module simplenews.
Lorsque je reçois une newsletter, le mail comporte deux liens à la fin :
- newsletter
- se désabonner
Le problème est que ces liens sont faux.

Je n'ai pas trouvé dans la configuration de champs où les liens étaient renseignés, comment puis-je avoir la main dessus ?

Merci,

[Résolu] Module forward, le logo n'apparaît pas dans le mail

Bonjour,

J'utilise le module forward pour recommander des pages de mon site à un ami.
Or, dans le mail reçu, un carré blanc à croix rouge apparaît au lieu du logo à côté du titre du site internet.

J'ai regardé les configurations de forward, mail system et service links sans trouver la source du problème.

Auriez-vous une solution ?

Merci,

[Résolu] Envoi d'une page à un ami

Bonjour,

Je voudrais ajouter sur toutes mes pages, quel que soit le type de contenu, une icône de mail pour l'envoi de la page à un ami. Je veux un formulaire tout simple et mon "ami" reçoit le contenu de la page. Rien de plus sophistiqué.

J'ai commencé par tester le module print, or l'icône n'apparaissait que sur Firefox 4 et ni sur Firefox 3, ni sur IE7 et IE8.

Pages