[AlternC-dev] [Misc] Robot d'envoi de mail aux membres

Retour à l'archive de la liste
Le site d'AlternC
Google Custom Search

François aifsair at gmail.com
Jeu 8 Jan 04:17:06 CET 2015


Salut à tous,

pour la 29 millième fois j'ai envie d'envoyer un mail à des membres de lautre via un script, sur une machine,
et pour une fois, je n'ai pas envie de refaire un truc gruik pour aller choper son mail.

J'ai donc commencé à créer une table MySQL et un robot pour faire le job à ma place.

L'idée est la suivante: on vient mettre un subject, un body, et un uid dans une table (et un status, genre done = 0),
puis on fait passer un bot pour envoyer, bêtement, le mail au membre concerné.

Je mets mon début de code ici : pour info je pense remplacer le status par 2 champs de date:  un d'ajout de la task, 
et un pour la date effective d'envoi du mail. Pour la traçabilité ça sera mieux je pense.

La table :

CREATE TABLE `f_warn` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `uid` int(10) unsigned DEFAULT NULL,
  `subject` varchar(200) DEFAULT NULL,
  `body` text,
  `status` int(2) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;


(grmpf faut que je la passe en utf-8)

Le bout de robot : 

#!/usr/bin/php -q
<?php
require("/var/alternc/bureau/class/config_nochk.php");
$string_headers = '';

$headers = array('From' => 'root at lautre.net',
                 'Reply-to' => 'root at lautre.net',
                 'Cc' => 'root at lautre.net',
                 'Content-Type' => 'text/plain; charset=utf-8'
);
foreach ($headers AS $k=>$v)
  $string_headers .= "$k: $v\r\n";


$s=mysql_query("select m.mail, w.subject, w.body from system.membres m, root.f_warn w where w.uid = m.uid AND w.status = 0");
while ($c=mysql_fetch_array($s)) {
  mail($c['mail'], $c['subject'], $c['body'], $string_headers);
}

?>

Je pense que ça doit pas être bien compliqué d'intégrer ça à AlternC, perso j'ai mis ça dans une vieille base "root" pour cloisonner un peu plus
et isoler du backend.

La classe à vegas serait que le mail parte signé avec pgp 8-)



Plus d'informations sur la liste de diffusion Dev