Създаване на бюлетин ? Изпращане на Емайл на всички ?

emcuemnecu

Registered
Здравейте. Вече наблюдавам в повечето сайтове модерно или не, но опция за абониране за получаване на новини от даден сайт.


Горе-долу ми се върти в мислите как ще стане самото записване в DB на даден емайл (имам представа), но ми се вижда голяма играчка след това да влизам и да копирам емайл адресите от админ панела ?


Как точно се правят тези неща ? Изпращането на емайл ?
Влизам си в емайл акаунта да речем абв и така ли?
 
Може да завъртиш цикъл. Ето нещо примерно. Таблицата ти е mails:
Код:
<?php
$query = mysql_query("SELECT * FROM `emails`");

while($row = mysql_fecth_array($query)) 
{
$to      = $row['email']
$subject = 'newsletter';
$message = 'Super qki neshta se poluchavat v nashiq sait, ako ne iskate da poluchavate biuletin se otpishete.';
$headers = 'From: webmaster@example.com' . "\r\n" .
    'Reply-To: webmaster@example.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);
}
 
Записваш си мейлите в БД и след това с един крон изпращаш съобщенията, но ти трябва проверка дали не си изпратил преди по-малко от 2-3 мин към същия адрес съобщение, за да не влезеш в спам листите
 
Добре, имам това:
functions.php
PHP:
<?php 
mysql_connect("localhost", "потр.име", "парола") or die(mysql_error()); 
mysql_select_db("името на базата таблици") or die(mysql_error()); 

function isEmail($email) { 
$regex = "/^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$/"; 

if ( preg_match($regex, $email )) { 

return true; 

} 

else { 

return false; 

} 
} 


function saveIt($email) { 
if(isEmail(trim($_POST['mail']))) { 

$mail = $_POST['mail']; 

$query = "SELECT * FROM newsletter WHERE mail='$mail'"; 

$result = mysql_query($query) or die(mysql_error()); 

$counted = mysql_fetch_array($result); 

if($counted[1] == $mail) { 

echo "Вече има такъв е-мейл в базата от данни!"; 

} 
else { 
mysql_query("INSERT INTO newsletter (id, mail) VALUES('', '$mail' ) ") or die(mysql_error()); 

echo "Е-мейла е записан успешно в базата от данни!"; 
} 
} 
else { 

echo "Въвел си невалиден е-мейл!"; 

} 
} 

function sendIt($topic, $email) { 
$myName = "моето име"; // името ти 
$myEmail = "моят емайл адрес"; //твоя е-мейл адрес 
$mail_body = $email; 
$subject = $topic; 
$header = "From: ". $myName . " <" . $myEmail . ">\r\n"; 


$result = mysql_query("SELECT * FROM newsletter") or die(mysql_error()); 

while($row = mysql_fetch_array( $result )) { 
$recipent = $row['mail']; 
mail($recipient, $subject, $mail_body, $header); // изпращане 
} 

echo "Писмата са изпратени успешно!"; 


} 

?>
И това ми е формата
HTML:
<form method="post" action=""> 
<input type="text" name="mail" /><input type="submit" name="submit" value="Запиши"> 
</form> 
<?php 
include('functions.php'); 
if(isset($_POST['submit'])){ 
saveIt($_POST['mail']); 
} 
?>
Записват се така, а от тук натам как да изкарам всичките емайли адреси в отделна страница от където да се номерират 1. емайл, 2. емайл ?
Защото така както е се записват, но не знам как да ги изпращам.
 

Горе