2013-03-03 99 views
0

我有这个问题。我在PHP中创建了一个注册表单(带有一个简单的后端/控制面板)。旅行者进入一个页面,他们在那里注册(姓名,电话号码,电子邮件等)。然后注册被存储在MySQL数据库中。每当控制面板加载时,它就会从MySQL数据库中获取所有信息。这是不同体育营地的招牌,发生在不同的国家。所以我试图给'发邮件给注册X'方法的参与者,然后以某种方式发送一封电子邮件给所有注册了目的地X的人。我已经考虑过几个不同的方式来做到这一点,但无法弄清楚,这是更容易做出或更好。从PHP脚本发送多个电子邮件

1)要使'SELECT theEmailAddress FROM tablename WHERE 1',即获得所有的电子邮件地址。之后,为他们每个人制作一个PHP邮件函数。然后制作一个接触式的HTML表单,发送给每封电子邮件。 我只是觉得这个解决方案看起来有些笨拙,或者是什么?

2)我创建了一个Mailchimp帐户。我也在考虑使用Mailchimps API(我没有使用它,看起来有点复杂)在控制面板中创建按钮,因此为每个目标创建一个List。然后该消息应该从Mailchimp发送。这种做法的巨大优势在于,不会与垃圾邮件过滤器发生冲突(因为Mailchimps电子邮件很少被垃圾邮件过滤器捕获)。

3)其他一些聪明的方法,我还没有想过。我接受任何建议。

谢谢。

+0

你可以使用while循环我想 – Pachonk 2013-03-03 23:17:02

回答

1

以下代码将继续发送邮件,直到处理完所有行(与条件匹配)。

$query = mysql_query("SELECT theEmailAddress FROM tablename WHERE 1"); 
while ($row = mysql_fetch_assoc($query)) { 

    $to  = $row['theEmailAddress']; 
    $subject = 'the subject'; 
    $message = 'hello'; 
    $headers = 'From: [email protected]' . "\r\n" . 
    'X-Mailer: PHP/' . phpversion(); 

    mail($to, $subject, $message, $headers); 
} 

然而,大多数邮件服务器都阻止了php邮件程序,或将其标记为垃圾邮件。所以我建议寻找一个SMTP邮件类。有很多不同的类型,所以你必须自己挑选一个。但是,你可以连接到一个Gmail(或其他SMTP帐户),并通过那里发送你的邮件。它使事情更可靠。

1

我建议使用MailChimp制作的Mandrill API,而不是MailChimp API(用于将电子邮件活动发送给人员列表)。这是一个API,用于发送您所描述的一次性和交易性电子邮件。使用Mandrill将具有可靠的可交付性(如您所述)的优势,并为您提供有关谁正在打开并点击您的电子邮件的数据。

在这种情况下,您将有一个类似于@ Neograph734的脚本,但不使用PHP的mail()函数,而是使用Mandrill API。

@ Neograph734也是正确的,你也可以用直接PHP来做到这一点。

1

MailChimp API具有您需要的功能。一种做法是创建每个国家特有的Interest Groups。单独使用组可以让您发送电子邮件到整个列表,并通过每个用户订阅的组自定义内容。与Segments结合使用,您可以只写信给兴趣小组的成员。

MailChimp API可能看起来很复杂,但它正在建模一个固有的复杂问题。 API经过精心设计,具有所需的功能。

您也可以通过使用您的程序生成列表,然后手动将其导入MailChimp并从Web UI发送电子邮件来妥协。这取决于列表的大小和发送电子邮件的频率。

MailChimp是要走的路,如果你想要坚如磐石的电子邮件和跟踪。只需要一些时间来学习。