asso('id'))); $tos = $uf->getUsers(); } foreach ($mls as $ml) { // $list_members is a (list_details, members, list_owners) array, where // members is an array of (0 => name, 1 => email) arrays. $list_members = $client->get_members($ml); if ($list_members) { foreach ($list_members[1] as $mem) { $uf = new UserFilter(new UFC_Email($mem[1])); $user = $uf->getUser(); if ($user) { $tos[] = $user; } else { $tos[] = $mem[1]; } } } } return $tos; } // }}} // {{{ _send_xnet_mail function _send_xnet_mail($user, $body, $wiki, $mailer, $replyto = null) { if ($user instanceof PlUser) { $dear = $user->isFemale() ? 'Chère' : 'Cher'; $lastname = $user->lastName(); $firstname = $user->firstName(); } else { $dear = 'Cher(e)'; $lastname = ''; $firstname = $user; } global $globals; $grp_name = $globals->asso('nom'); $grp_short = $globals->asso('diminutif'); $text = str_ireplace(array('', '', ''), array($dear, $lastname, $firstname), $body); if ($wiki) { $text .= ( "\n" . "---- \n" . "Message envoyé pour le groupe [[http://www.polytechnique.net/${grp_short}|${grp_name}]] via les outils de Polytechnique.org \\\\\n" . "[[http://www.polytechnique.net/${grp_short}/annuaire|Annuaire]] | [[http://www.polytechnique.net/${grp_short}/unsubscribe|Se désinscrire]]" ); } else { $text .= ( "\n" . "---- \n" . "Message envoyé pour le groupe ${grp_name} via les outils de Polytechnique.org\n" . "Annuaire : http://www.polytechnique.net/${grp_short}/annuaire | Désinscription : http://www.polytechnique.net/${grp_short}/unsubscribe" ); } $mailer->setTo($user); if ($replyto) { $mailer->addHeader('Reply-To', $replyto); } if ($wiki) { $mailer->setWikiBody($text); } else { $mailer->setTxtBody(wordwrap($text, 72)); } $mailer->send(); } // }}} // {{{ send_xnet_mails function send_xnet_mails($from, $sujet, $body, $wiki, $tos, $replyto = null, $upload = null, $name = null) { global $globals; $sent = array(); $mailer = new PlMailer(); $mailer->setSubject($sujet); $mailer->setFrom($from); if ($upload && $upload->exists()) { $mailer->addUploadAttachment($upload, $name); } foreach ($tos as $user) { if ($user instanceof User) { $email = $user->bestEmail(); } else { $email = $user; } if (!$email) { continue; } if (!isset($sent[$email])) { _send_xnet_mail($user, $body, $wiki, $mailer, $replyto); $sent[$email] = true; } } } // }}} // vim:set et sw=4 sts=4 sws=4 foldmethod=marker fenc=utf-8: ?>