| |
|
|
| | Доброго времени суток. Помогите, пожалуйста, кто имеет возможность. Есть скрипт отправки e-mail( из примеров на softtime):
sendmail.php
<?php
header('Content-Type: text/plain');
include("./mail_class.php");
$mail = new Mail();
$mail -> to = "login@domen.com";
//как сюда вставлять адреса из моей базы и отправлять на них поочередно письма?
$mail -> subject = "test";
$mail -> msg = "testing...";
$mail -> msg = "testing...";
$mail -> rigorous_email_check = 0;
if($mail->send()){
echo("Success");
}else{
echo("error");
}
echo("<br>");
echo($mail -> msg);
?>
|
mail_class.php
<?php
class Mail
{
// создаем переменные, в которых хранится содержимое заголовков
var $to = '';
var $from = '';
var $reply_to = '';
var $cc = '';
var $bcc = '';
var $subject = '';
var $msg = '';
var $validate_email = true;
// проверяет допустимость почтовых адресов
var $rigorous_email_check = true;
// проверяет допустимость доменных имен по записям DNS
var $allow_empty_subject = false;
// допустимость пустого поля subject
var $allow_empty_msg = false;
// допустимость пустого поля msg
var $headers = array();
/* массив $headers содержит все поля заголовка, кроме to и subject*/
function check_fields()
/* метод, проверяющий, переданы ли все значения заголовков
и проверку допустимости почтовых адресов */
{
if(empty($this -> to))
{
return false;
}
if(!$this -> allow_empty_subject && empty($this -> subject))
{
return false;
}
if(!$this -> allow_empty_msg && empty($this -> msg))
{
return false;
}
/* если есть дополнительные заголовки, помещаем их в массив $headers*/
if(!empty($this -> from))
{
$this->headers[] = "From: $this -> from";
}
if(!empty($this -> reply_to))
{
$this -> headers[] = "Reply_to: $this -> reply_to";
}
// проверяем допустимость почтового адреса
if ($this -> validate_email)
{
if (!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $this -> to))
{
return false;
}
return true;
}
}
function send()
/* метод отправки сообщения */
{
if(!$this -> check_fields()) return true;
if (mail($this -> to, htmlspecialchars( stripslashes(trim($this -> subject))),
htmlspecialchars(stripslashes(trim($this -> msg)))))
{
return true;
}else{
return false;
}
}
}
?>
|
Как сделать такой цикл, чтобы в $mail -> to вставлялись поочередно e-mail адреса из моей базы, находящейся в текстовом файле и на них отправлялось письмо? | |
| |
|
|
| |
|
|
| |
для: Loneliness
(26.12.2006 в 01:34)
| | | При массовой рассылке было бы удобнее отказаться от класса, да и просто циклическая рассылка по одному e-mail за раз не очень эффективна, тут лучше воспользоваться почтовым заголовком Bcc. Возможно вас заинтересует тема по ссылке http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=7487.
<?php
$headers.="Bcc: sidor@mysite.ru\r\n";
$headers.="Bcc: sidor1@mysite.ru\r\n";
$headers.="Bcc: sidor2@mysite.ru\r\n";
mail("zxcv@zxcv.ru",$tema,$piss,$headers);
?>
|
| |
| |
|
|
| |
|
|
| |
для: cheops
(26.12.2006 в 02:30)
| | | Дело в том, что я хочу отправлять не на совсем обычные адреса, а на телефоны с включенным e-mail. Опсос не доставит письма с кучей адресов в заголовках.
А в таком виде по одиночке скрипт нормально доставляет. Поэтому, предпочтительнее именно циклическая рассылка по одному e-mail.
И база в файле уже есть, как мне из нее считывать адреса? Не в ручную ведь 5000 заголовков писать с адресами? | |
| |
|
|
| |
|
|
| |
для: loneliness
(26.12.2006 в 02:59)
| | | >И база в файле уже есть, как мне из нее считывать адреса?
В каком формате хранятся адреса в базе данных? Просто отдельный адрес на новой строке? Или файл содержит какую-то дополнительную информацию? | |
| |
|
|
| |
|
|
| |
для: cheops
(26.12.2006 в 03:21)
| | | Адреса каждый в новой строке, в файле *.txt | |
| |
|
|
| |
|
|
| |
для: cheops
(26.12.2006 в 03:21)
| | | Но сделать базу в ином формате(например 'адрес1','адрес2',....) я смогу и не средствами PHP. Если возможно, напишите, в каком формате удобнее всего представить базу, и как реализовать цикл отправки. Буду искренне благодарен. | |
| |
|
|
| |
|
|
| |
для: cheops
(26.12.2006 в 02:30)
| | | В упомянутом Вами топике нашел такой код:
<?PHP
$members=array('inav@mysite.ru','petr@mysite.ru','sidor@mysite.ru');
if(sizeof($members)>0){
for($i=0;$i<sizeof($members);$i++){
mail($members[$i],"Тема","Сообщение","Content-type: text/html; charset=windows-1251 \r\n")
}
}
?>
|
Но он почему-то не работает. Пишет: Parse error: parse error, unexpected '}' in /www/hitbiz01/www/htdocs/sendmail.php on line 4 | |
| |
|
|
| |
|
|
| |
для: Loneliness
(26.12.2006 в 04:14)
| | | Пропущено двоеточие после закрывающей скобки функции mail().
<?PHP
$members=array('inav@mysite.ru','petr@mysite.ru','sidor@mysite.ru');
if(sizeof($members)>0){
for($i=0;$i<sizeof($members);$i++){
mail($members[$i],"Тема","Сообщение","Content-type: text/html; charset=windows-1251 \r\n");//здесь
}
}
?>
|
| |
| |
|
|
| |
|
|
| |
для: Shiva
(26.12.2006 в 05:01)
| | | Спасибо. Исправил, все работает отлично. | |
| |
|
|
| |
|
|
| |
для: Loneliness
(26.12.2006 в 07:17)
| | | То есть точка с запятой, конечно. С чего вдруг двоеточие? ) А ведь лингвист... | |
| |
|
|
| |
|
|
| |
для: Shiva
(26.12.2006 в 09:30)
| | | Ну это не столь значимо. Я ведь понял. :) | |
| |
|
|