2012-03-03 80 views
1

请不要嘲笑我,但我相信我只是做了一件非常愚蠢的事情。我正在为我正在研究的网站设置简报,但是当出现错字时我首先尝试了它。在扫描整个数据库并发送电子邮件时,我搞砸了停止的部分。我修复了代码,但电子邮件仍然正在发送(对我的母亲:O),他们似乎没有停止。停止流氓PHP脚本发送电子邮件

这是剧本,当我执行它:

$message = $_POST['emailmessage']; 
$subject = $_POST['subject']; 
$query = mysql_query("SELECT `email` FROM `members` WHERE `active`='1'"); 
//This line underneath should not be there 
$rows = mysql_fetch_assoc($query); 
$headers = array(
    "From: [email protected]", 
    "Content-Type: text/html" 
); 
//should be '$rows = mysql_fetch_assoc($query)' instead of '$rows' 
while($rows) 
{ 
    mail($rows['email'],$subject,$message,implode("\r\n",$headers)); 
    echo "<p>Sent to: " . $rows['email'] . "</p>"; 
} 

我接触的FatCow,看看他们是否能停止脚本,但他们说,他们不能做到这一点,他们将不得不删除我的整个帐户并把我放在不同的服务器上。我不能这样做。无论如何产生一个错误,或者会导致流氓脚本停止的东西吗?仅供参考我没有SSH访问权限。

- 我看着我的php配置文件,脚本的超时时间为300秒。这好像需要发送很多电子邮件。无论如何阻止这些电子邮件?

+0

FatCow不会为其客户端提供SSH访问。 – 2012-03-08 04:31:55

回答

1

已发送的内容不能再停止。但它不会永远运行,可能已经停止。

如果服务器没有被提供程序严重错误配置,那么脚本没有运行超过一定的时间限制,例如, 60秒。即使邮件继续通过,它可能不再运行,但邮件服务器正在花时间处理它创建的所有邮件。

我会拭目以待 - 洪水很快就会结束。

提供商将帐户移动到不同服务器的说法似乎没有任何意义 - 如果存在发送电子邮件的恶意进程,他们应该能够轻松杀死它。但无论如何......我会等待。

+0

是的,我想我将不得不等待,只是脚本根据配置文件运行了300秒,这样会有很多电子邮件。 – 2012-03-03 21:48:29

+1

@Keiran是的,这可能是相当一批。没什么可做的,只是等待它......(当然,如果你妈妈在使用桌面电子邮件客户端,设置一个过滤规则来自动删除收到的邮件,这样她就不会陷入其中:) – 2012-03-03 21:50:11

+0

是的,我已经有一个规则来过滤掉它们,并删除它们,只是它去了她的垃圾,所以他们仍然在那里。 – 2012-03-03 22:11:57

1

我的猜测是电子邮件只是排队,最终应该停止,因为php脚本不会在页面停止加载后继续执行。

我建议你使用像mailchimp这样的新闻提供商,因为它们更可靠,安全,并且该服务易于集成到您的网站中。

希望有帮助!

+0

脚本在服务器上运行的最长时间为300秒。这不是很长时间吗?我认为电子邮件可能会有一段时间。使用邮件黑猩猩,是否可以从MySQL数据库获取我的成员的电子邮件地址并使用它? – 2012-03-03 21:47:18

+0

你的意思是说,它可以从你的数据库中导入它们吗? 如果是这样,你可能会生成一个XML,CSV或Excel文件导入到mailchimp。但是据我所知,您无法将您的数据库中的电子邮件作为邮件进行邮件发送。那么你应该用自己的解决方案。 – Pankucins 2012-03-03 21:51:44