Nyhedsbrev modtages som ren html
Nyhedsbrevet lavet som html fil.Brevet udsendes med http://www.dunweber.com/docs/scripts/#mailliste som er tilpasset vores system.
Jeg sender det med med php fra serveren.
Koden er:
* Administrators function: Show send to maillist form.
*/
function showMailToMaillistLink() {
$formContent = '';
$default = '<input type="hidden" id="mailAll" name="mailAll" value="1" />'.
'<input type="submit" value="Skriv Nyhedsmail" '.
'title="Udsend nyhedsmail til alle tilmeldte på maillisten." />';
$confirmation = '<legend>Skriv til maillisten</legend>'.
'<label for="subject">Emne: </label>'.
'<input type="text" id="subject" name="subject" size="25" value="'.$_POST['subject'].
'" /><br />'.
'<label for="subject">Besked: </label>'.
'<textarea id="message" name="message" cols="25" rows="5">'.$_POST['message'].
'</textarea><br />'.
'<input type="hidden" class="text" id="mailAll" name="mailAll" value="2" />'.
'<label> </label>'.
'<input type="submit" value="Udsend mail" />'.
'<input type="reset" value="Annullér" '.
'onclick="window.location=\''.$_SERVER['PHP_SELF'].'\'" />';
$done = '<button title="Klik her for at lukke besked." '.
'onclick="window.location=\''.$_SERVER['PHP_SELF'].'\'">OK</button>';
switch($_POST['mailAll']) {
case 0 : {
$formContent = '<div>'.$default.'</div>';
$style = '';
break;
}
case 1 : {
$formContent = '<fieldset>'.$confirmation.'</fieldset>';
break;
}
case 2 : {
if(strlen(($subject = $_POST['subject'])) > 0
&& strlen(($message = $_POST['message'])) > 0) {
$formContent = '<fieldset>'.
mailToMaillist($subject, $message).$done.'</fieldset>';
}
else {
$formContent = '<fieldset>'.$confirmation.
'<p class="red" id="maillistInfo">'.
'Husk at udfylde både emnebeskrivelse og besked.'.
'</p></fieldset>';
}
break;
}
default : 0;
}
return '<form action="'.$_SERVER['PHP_SELF'].'" method="post" id="maillistMailAllForm">'.
$formContent.'</form>';
}
/**
* Administrators function: Send a mail to all maillist users.
*/
function mailToMaillist($subject, $message) {
require('settings.php');
if(!checkEmail($admin_email)) {
return '<p>Angiv korrekt administrator e-mail i »settings.php«</p>';
}
$subject = trim(str_replace('\n', ' ', $subject));
$message = trim(wordwrap($message, 70));
$maillist = getMaillistUsers();
$bcc = trim(implode(', ', $maillist), ', ');
$header = "From: $admin_email" . "\r\n".
"Reply-to: $admin_email" . "\r\n".
"Bcc: $bcc" . "\r\n".
"X-Mailer: PHP/".phpversion();
if(mail($admin_email, $subject, $message, $header)) {
return '<div>'.
'<h3 class="green" id="maillistInfo">Nyhedsmail afsendt til '.count($maillist).
' tilmeldte</h3>'.
'<table>'.
'<tr>'.
'<td>Emne:</td>'.
'<td>'.$subject.'</td>'.
'</tr>'.
'<tr>'.
'<td>Besked:</td>'.
'<td>'.$message.'</td>'.
'</tr>'.
'</table></div>';
}
else {
return '<p class="red" id="maillistInfo">Kunne ikke sende mail til maillisten. '.
'Kontakt administrator.</p>';
}
}
/**
* Administrators function: Get array of all rows in the maillist table.
*/
function getMaillistUsers() {
require('settings.php');
mysqlConnect();
$result = mysqlGetMatrix("SELECT email FROM $dbTableName");
mysqlClose();
for($i = 0; $i < count($result); $i++) {
extract($result[$i]);
$maillist[] = $email;
}
return $maillist;
}
/**
* Administrators function: check if an email looks ok and is at a real domain.
*/
function checkEmail($email) {
if((preg_match('/(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/',$email)) ||
(preg_match('/^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/',$email)))
{
$host = explode('@', $email);
if(checkdnsrr($host[1].'.', 'MX')) {
return true;
}
if(checkdnsrr($host[1].'.', 'A')) {
return true;
}
if(checkdnsrr($host[1].'.', 'CNAME')) {
return true;
}
}
return false;
}
?>
Nyhedsbrevet skulle se sådan ud:
http://www.orkiderejser.dk/indexadminon.php
Mvh
Jan
