Simple Newsletter Script - php, js, html

Posted by Jerzy Seweryn on
Form for people to enter their email address, put this on any page
[code lang="html"]
<form action="mailing.php" method="post" class="style16">
<input type="text" name="email" size="30" value="your email here!">
<input type="submit" value="GO!" name="submit">
</form>
[/code]
File called mailing.php will processes the adding of emails to the list.
[code lang="php"]
<?php
$email = $_POST['email'];
$file = fopen("mailing.txt", "a");
fwrite($file, "n" . $email);
fclose($file);

header("Location: mailing_thankyou.php");
?>
[/code]
Create a file called mailing.txt with nothing in it, when uploaded to the server set it writable (chmodd 666 or 777).
Create a file called mailing_thankyou.php, simple a page thanking them for signing up.
[code lang="html"]
<html>
<head>
<META HTTP-EQUIV="Refresh"
CONTENT="3; URL=/URL_TO_REDIRECT">
</head>
<body>
<center>
Thank you!
</center>
</body>
</html>
[/code]
File to send the newsletter, create a file called anything you want.
[code lang="php"]
<?php
$send = $_POST['send'];
if($send){
$email = $_POST['email'];

$emailfile = file_get_contents("mailing.txt");
$emaillist = explode("n", $emailfile);

foreach ($emaillist as $value)
{
mail($value, $_POST['subject'], $_POST['message'], "From: $email");
}

echo "<b>Email sent!</b><br />";
}
?>
<form action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
<table width="481" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td width="84" align="right" valign="top" class="style32">Subject:</td>
<td width="397" align="left" class="style32">
<input name="subject" type="text" id="subject" size="41" maxlength="100">
</td>
</tr>
<tr valign="top">
<td width="84" align="right" valign="top" class="style32">From:</td>
<td align="left" class="style32"><input name="email" type="text" id="email" size="41" maxlength="100"></td>
</tr>
<tr valign="top">
<td align="right" valign="top" class="style32">Message:</td>
<td align="left" class="style32">
<textarea name="message" cols="37" rows="4" id="message"></textarea>
</td>
</tr>
<tr valign="top">
<td align="right" valign="top" class="style32">&nbsp;</td>
<td align="left" class="style32">
<input name="send" type="submit" id="send" value="SUBMIT">
<input name="Reset" type="reset" id="Reset" value="RESET">
</td>
</tr>
</table>
</form>
[/code]