[SPIP][PLUGINS] v3.0-->v3.2
[lhc/web/www.git] / www / ecrire / genie / mail.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2017 *
7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
8 * *
9 * Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
10 * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
11 \***************************************************************************/
12
13 /**
14 * Tâche de fond pour l'envoi des mails de nouveautés
15 *
16 * @package SPIP\Core\Mail
17 */
18
19 if (!defined('_ECRIRE_INC_VERSION')) {
20 return;
21 }
22
23 /**
24 * Envoi du Mail des nouveautés
25 *
26 * Ce mail est basé sur le squelette nouveautes.html
27 *
28 * La meta `dernier_envoi_neuf` permet de marquer la date du dernier envoi
29 * et de determiner les nouveautes publiees depuis cette date
30 *
31 * @param int $t
32 * @return int
33 */
34 function genie_mail_dist($t) {
35 $adresse_neuf = $GLOBALS['meta']['adresse_neuf'];
36 $jours_neuf = $GLOBALS['meta']['jours_neuf'];
37
38 $now = time();
39 if (!isset($GLOBALS['meta']['dernier_envoi_neuf'])) {
40 ecrire_meta('dernier_envoi_neuf', date('Y-m-d H:i:s', $now - (3600 * 24 * $jours_neuf)));
41 }
42
43 $page = recuperer_fond('nouveautes',
44 array('date' => $GLOBALS['meta']['dernier_envoi_neuf'], 'jours_neuf' => $jours_neuf), array('raw' => true));
45
46 if (strlen(trim($page['texte']))) {
47 // recuperer les entetes envoyes par #HTTP_HEADER
48 $headers = "";
49 if (isset($page['entetes']) and count($page['entetes'])) {
50 foreach ($page['entetes'] as $k => $v) {
51 $headers .= (strlen($v) ? "$k: $v" : $k) . "\n";
52 }
53 }
54
55 include_spip("inc/notifications");
56 notifications_envoyer_mails($adresse_neuf, $page['texte'], "", "", $headers);
57 ecrire_meta('dernier_envoi_neuf', date('Y-m-d H:i:s', $now));
58 } else {
59 spip_log("mail nouveautes : rien de neuf depuis $jours_neuf jours");
60 }
61
62 return 1;
63 }