Бюлетин на e-mail / Newsletter
Автор: deam0n
Това е много прост бюлетин (от англ. Newsletter), който използва MySQL за да записва е-мейлите на потребителите и после за да изпраща!
sql.sql
CREATE TABLE `newsletter`.`newsletter` (
`id` INT NOT NULL AUTO_INCREMENT ,
`mail` VARCHAR( 68 ) NOT NULL ,
PRIMARY KEY ( `id` ) ,
UNIQUE (
`mail`
)
) ENGINE = MYISAMindex.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="generator" content="PSPad editor, www.pspad.com">
<title></title>
</head>
<body>
Запиши се за бюлетина с новини:<br />
<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']);
}
?>
</body>
</html>
send.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="generator" content="PSPad editor, www.pspad.com">
<title></title>
</head>
<body>
Изпрати писмо:<br />
<form method="post" action="">
<input type="text" name="topic" /> Тема<br />
Писмо<br />
<textarea name="content" rows="15" cols="60"></textarea>
<input type="submit" name="submit" value="Изпрати">
</form>
<?php
include('functions.php');
if(isset($_POST['submit'])){
sendIt($_POST['topic'], $_POST['content']);
}
?>
</body>
</html>functions.php
<?php
mysql_connect("localhost", "root", "vertrigo") or die(mysql_error());
mysql_select_db("newsletter") 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 = "Ivan Bezimenov"; // името ти
$myEmail = "i.bezimenov@gmail.com"; //твоя е-мейл адрес
$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 "Писмата са изпратени успешно!";
}
?>Разбира се бюлетина е много опростен и с минимално функции, което пък спомага за лесното му преработване 🙂
Кода е авторски!




