Рассылка сообщений на email
Функционал:
Выдёргивает имена пользователей + их мыло
Чекбоксы кому отправить (снять все или выделить все)
Ну и собственно сама форма отправки
Можно прикрутить тини по желанию
Будет полезно — жмём +ики закину в вики
<?php
error_reporting(E_ALL ^ E_NOTICE);
header('Content-Type: text/html; charset=utf-8');
include_once('config/config.php');
include_once('config/config.table.php');
include_once('classes/lib/external/DbSimple/Generic.php');
echo '
<script type="text/javascript">
function unCheck(X){
var d=document.forms
for(var i=0;i<d.length;i++){
for(var j=0;j<d[i].elements.length;j++){
if(\'checkbox\'==d[i].elements[j].type)d[i].elements[j].checked=1==X?true:false
}
}
}
</script> ';
$aConfig = include("config/config.db.php");
$DB = DbSimple_Generic::connect($aConfig['type'].'://'.$aConfig['user'].':'.$aConfig['pass'].'@'.$aConfig['host'].':'.$aConfig['port'].'/'.$aConfig['dbname']);
if ($_POST['subm']){
require_once('classes/lib/external/phpMailer/class.phpmailer.php');
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Host = SYS_MAIL_SMTP_HOST;
$mail->Port = SYS_MAIL_SMTP_PORT;
$mail->SMTPAuth = true;
$mail->Username = SYS_MAIL_SMTP_USER;
$mail->Password = SYS_MAIL_SMTP_PASSWORD;
$mail->From = SYS_MAIL_FROM_EMAIL;
$mail->FromName = SYS_MAIL_FROM_NAME;
$mail->CharSet = SYS_MAIL_CHARSET;
$mail->WordWrap = 0;
$mail->IsHTML(true);
foreach ($_POST as $key=>$value){
$pattern="/mail_[0-9]+/";
if (preg_match ($pattern, $key)){
$valid = true;
$mail->AddAddress($value);
}
}
if ($valid == true){
$mail->Subject = $_POST['subject'];
$mail->Body = $_POST['message'];
if(!$mail->Send()){
echo "Message could not be sent. <p>";
echo "Mailer Error: " . $mail->ErrorInfo;
exit;
}
else{
echo 'Сообщение было отправлено';
}
}
else{
echo 'Не было выбрано ни одного ящика';
}
}
$mails = $DB->select("select * from ?#",DB_TABLE_USER);
echo '<form name="" action="" method="post"><br />';
foreach ($mails as $mail){
echo '<input type="checkbox" name="mail_'.$mail['user_id'].'" value="'.$mail['user_mail'].'" checked>'.$mail['user_login'].', '.$mail['user_mail'].'<br />';
}
echo '<input type="button" value="выбрать все" onClick="unCheck(1)"><input type="button" value="снять выделение" onClick="unCheck(0)"><br />';
echo '
Тема сообщения<br />
<input name="subject" type="text" value=""><br />
Сообщение<br />
<textarea name="message" rows=5 cols=40 wrap="off"></textarea><br />
<input type="submit" name="subm" value="Отправить">
</form>';
?>
только совет прикрыть данный mail.php чем нить — дабы ни кто у Вас не спамил и быть аккуратней с рассылкой — чтоб не забанили адрес
18 комментариев
А ещё можно бы сделать в профиле пользователя ещё галочку: получать ли новости проекта. И по этой галочке уже рассылать.
В данной ситуации простое и быстрое решение вопроса
Почему сделали это бесплатно? Потому что данная функция потребовалась самим!
Доп модуль такой нам не нужен — если кто то готов за него заплатить, не проблема
Составляем ТЗ и мы сделаем
Набралось бы 6 человек — приктулии бы внутрь ЛС? Было бы офигенно!
Mailer Error: SMTP Error: Could not connect to SMTP host.
Message could not be sent.
Mailer Error: SMTP Error: Could not connect to SMTP host.
вот такая ошибка, в чем может быть проблема?
Mailer Error: SMTP Error: Could not connect to SMTP host.
в чем беда???