Submitted by Azanaar on
Bonjour à tous amis Drupal.
J'ai créé un module qui envoie un email de notification à chaque fois que le CRON est lancé. Le code ne fonctionne malheureusement pas. Pourtant, si je remplace le hook_cron par un hook_entity_insert cela marche parfaitement a chaque fois que je crée une entité. C'est pourtant la même logique et je vois pas ce qui planche.
Quelqu'un aurait une idée ?
Az
function demomail_cron() {
$mailManager = \Drupal::service('plugin.manager.mail');
$module = 'demomail';
$key = 'create_email';
$to = \Drupal::currentUser()->getEmail();
$params['message'] = 'toto';
$params['node_title'] = 'toto';
$langcode = \Drupal::currentUser()->getPreferredLangcode();
$send = true;
$result = $mailManager->mail($module, $key, $to, $langcode, $params, NULL, $send);
if ($result['result'] !== 1) {
drupal_set_message(t('There was a problem sending your message and it was not sent.'), 'error');
}
else {
drupal_set_message(t('Your message has been sent.'));
}
}
Bonsoir il faut aussi ajouter
Permalien Soumis par slatrach le 22 Octobre, 2016 - 21:23
Bonsoir il faut aussi ajouter une fonction demomail_mail, voir api hook_mail()
Le problème venait que le
Permalien Soumis par Azanaar le 27 Octobre, 2016 - 15:26
Le problème venait que le Cron est considéré comme utilisateur anonyme contrairement au insert_entity, du coup il ne trouvait pas l'email du CurrentUser. Ce que j'ai fait c'est que je récupère via une query l'email et ca a marché.
A toute,
Az