Problemer med timout på nyheds mail sender
Jeg bruger et script jeg engang lavede med hjaelp her indefra til at sende mails, men nu er der vidst for mange brugere i nyheds brevet, den vil ivertifald ikke sende mails ud, den kommer med den her besked:HTTP 500 - Intern serverfejl
mail.php:
<?
require("so_mail.inc.php");
$fileHandle1 = @fopen("newsletter1.htm", "r");
$fileContent1 = @fread($fileHandle1, filesize("newsletter1.htm"));
fclose($fileHandle1);
$fileHandle2 = @fopen("newsletter2.htm", "r");
$fileContent2 = @fread($fileHandle2, filesize("newsletter2.htm"));
fclose($fileHandle2);
mysql_connect("localhost", "goog_dk", "xxxxxx");
mysql_select_db("goog_dk");
$result = mysql_query("SELECT * FROM maillist");
while ($row = mysql_fetch_array($result)) {
sendEmail("GooG.dk", "news@goog.dk", $row["navn"], $row["email"], "goog.dk nyhedsbrev!", $fileContent1 . $row["navn"] . $fileContent2);
echo("<br>$row[email] - ERROR " . $_ERROR . ": " . $_MAIL["ErrorNumber"] . $_MAIL["ErrorMessage"]);
}
?>
so_mail.inc.php
<?php
//----- SETUP MAIN ARRAY ---------------------------------------------------------------------------------------------------------------//
$_MAIL = array(
"MyEmail" => "Webmaster@goog.dk",
"SMTPServer" => "pop.goog.dk",
"SMTPPort" => 25,
"Terminator" => "\r\n",
"Authorise" => false,
"Username" => "webmaster@goog.dk",
"Password" => "xxxxxx",
"FlagErrors" => true,
"ErrorNumber" => 0,
"ErrorMessage" => ""
);
//----- SEND EMAIL ---------------------------------------------------------------------------------------------------------------------//
function email($to, $subject, $message, $headers = "") {
global $_MAIL;
global $_ERROR;
// Connect to socket
$fp = fsockopen($_MAIL["SMTPServer"], $_MAIL["SMTPPort"], $_MAIL["ErrorNumber"], $_MAIL["ErrorMessage"], 10);
if (!$fp) {
if ($_MAIL["FlagErrors"]) $_ERROR = 30;
return false;
}
// Set socket timeout
socket_set_timeout($fp, 10);
$reply = getresponse($fp, "220");
if ($reply !== true) {
$_MAIL["ErrorMessage"] = $reply;
if ($_MAIL["FlagErrors"]) $_ERROR = 32;
return false;
}
// Perform authorisation if necessary
if ($_MAIL["Authorise"]) {
fputs($fp, "EHLO SERVER" . $_MAIL["Terminator"]);
$reply = getresponse($fp, "250");
if ($reply === true) {
fputs($fp, "AUTH LOGIN" . $_MAIL["Terminator"]);
$reply = getresponse($fp, "334");
}
if ($reply === true) {
fputs ($fp, base64_encode($_MAIL["Username"]) . $_MAIL["Terminator"]);
$reply = getresponse($fp, "334");
}
if ($reply === true) {
fputs ($fp, base64_encode ($_MAIL["Password"]) . $_MAIL["Terminator"]);
$reply = getresponse($fp, "235");
}
if ($reply !== true) {
if (ereg("^502", $reply) || ereg("^501", $reply)) {
$_MAIL["ErrorMessage"] = $reply;
if ($_MAIL["FlagErrors"]) $_ERROR = 38;
return false;
} else {
$_MAIL["ErrorMessage"] = $reply;
if ($_MAIL["FlagErrors"]) $_ERROR = 39;
return false;
}
}
} else {
fputs($fp, "HELO SERVER" . $_MAIL["Terminator"]);
$reply = getresponse($fp, "250");
if ($reply !== true) {
$_MAIL["ErrorMessage"] = $reply;
if ($_MAIL["FlagErrors"]) $_ERROR = 31;
return(false);
}
}
// Start sending email headers
fputs($fp, "MAIL FROM: " . $_MAIL["MyEmail"] . $_MAIL["Terminator"]);
$reply = getresponse($fp, "250");
if ($reply !== true) {
$_MAIL["ErrorMessage"] = $reply;
if ($_MAIL["FlagErrors"]) $_ERROR = 33;
return false;
}
// Find all receipients given
$receipient = strtok($to, ",");
while ($receipient !== false) {
$receipient = trim($receipient);
fputs($fp, "RCPT TO: " . $receipient . $_MAIL["Terminator"]);
$reply = getresponse($fp, "250");
if ($reply !== true) {
$_MAIL["ErrorMessage"] = $reply;
if ($_MAIL["FlagErrors"]) $_ERROR = 34;
return false;
}
$receipient = strtok(",");
}
// Send more email headers
fputs($fp, "DATA" . $_MAIL["Terminator"]);
$reply = getresponse($fp, "354");
if ($reply !== true) {
$_MAIL["ErrorMessage"] = $reply;
if ($_MAIL["FlagErrors"]) $_ERROR = 35;
return false;
}
// Send From header
if (!ereg("from:", $headers) && !ereg("From:", $headers) && !ereg("FROM:", $headers)) {
fputs($fp, "From: <" . $_MAIL["MyEmail"] . ">" . $_MAIL["Terminator"]);
}
// Send To header
if (!ereg("to:", $headers) && !ereg("To:", $headers) && !ereg("TO:", $headers)) {
$receipient = strtok($to, ",");
$receipient = trim($receipient);
fputs($fp, "To: <" . $receipient . ">");
$receipient = strtok(",");
while ($receipient !== false) {
$receipient = trim($receipient);
fputs($fp, ", <" . $receipient . ">");
}
fputs($fp, $_MAIL["Terminator"]);
}
// Send specified headers
if ($headers != "") {
$headers = trim($headers);
fputs($fp, $headers . $_MAIL["Terminator"]);
}
// Send Subject
$subject = trim($subject);
fputs($fp, "Subject: " . $subject . $_MAIL["Terminator"]);
// Send Message
$message = rtrim($message);
$message = str_replace("\n", "", $message);
fputs($fp, $_MAIL["Terminator"] . $message);
fputs($fp, $_MAIL["Terminator"] . "." . $_MAIL["Terminator"]);
$reply = getresponse($fp, "250");
if ($reply !== true) {
$_MAIL["ErrorMessage"] = $reply;
if ($_MAIL["FlagErrors"]) $_ERROR = 36;
return false;
}
// End email
fputs($fp, "QUIT" . $_MAIL["Terminator"]);
fclose($fp);
return true;
}
//----- GET RESPONSE FROM SOCKET -------------------------------------------------------------------------------------------------------//
function getresponse($fp, $code) {
while (ereg("^" . $code . "-", ($reply = fgets($fp, 1024))));
if (ereg("^" . $code, $reply)) {
return true;
} else {
return $reply;
}
}
//----- SEND MAIL ----------------------------------------------------------------------------------------------------------------------//
function sendEmail($myName, $myEmail, $contactName, $contactEmail, $subject, $message) {
global $_MAIL;
$headers = "MIME-Version: 1.0" . $_MAIL["Terminator"];
$headers .= "Content-Type: text/html;charset=iso-8859-1" . $_MAIL["Terminator"];
$headers .= "To: \"" . $contactName . "\" <" . $contactEmail . ">" . $_MAIL["Terminator"];
$headers .= "From: \"" . $myName . "\" <" . $myEmail.">" . $_MAIL["Terminator"];
$headers .= "Reply-To: " . $myEmail . $_MAIL["Terminator"];
$headers .= "Return-Path: \"" . $myName . "\" <" . $myEmail . ">" . $_MAIL["Terminator"];
$headers .= "X-Sender: \"" . $myName . "\" <" . $myEmail . ">" . $_MAIL["Terminator"];
$headers .= "X-Mailer: MyMailer v1.1" . $_MAIL["Terminator"];
$headers .= "X-Priority: 1" . $_MAIL["Terminator"];
$headers .= "X-MSMail-Priority: High" . $_MAIL["Terminator"];
$result = mail("\"" . $contactName . "\" <" . $contactEmail . ">", $subject, $message, $headers);
return $result;
}
?>
