0

我有两台服务器,ServerA 和 ServerB。ServerA 不支持群发邮件,而 ServerB 支持(我在 MySQL 表中有超过 4000 个电子邮件地址)。

在 ServerA 上,我正在为电子邮件创建 HTML,在 ServerB 上,我放置脚本来发送电子邮件。我在 ServerA 上运行此代码

ob_end_clean();
header("Connection: close");
ignore_user_abort(); // optional
ob_start();
echo ('Sending email...');
$size = ob_get_length();
header("Content-Length: $size");
ob_end_flush();     // Will not work
flush();            // Unless both are called !
$postdata = http_build_query(
array(
    'subject'=>'Latest Rentals Properties',
    'message' => $message   //email body html
     )
);
$opts = array('http' =>
array(
    'method'  => 'POST',
    'header'  => 'Content-type: application/x-www-form-urlencoded',
    'content' => $postdata
     )
  );
$context  = stream_context_create($opts);
$result = @file_get_contents('http://ServerB.com/send_email.php', false, $context);
if($http_response_header[0]=="HTTP/1.1 404 Not Found"):echo "404";
elseif($http_response_header[0]=="HTTP/1.1 200 OK"):echo "OK";
else "ERROR";

在 ServerB.com 上,send_email.php 有这个代码来发送电子邮件(我正在使用 class.phpmailer.php)

$subject = $_REQUEST['subject'];
$message1 = $_REQUEST['message'];
$mail->SetFrom("from@ServerB.com", '');
$rs = $oBj->query("SELECT email FROM `crm_test_emails` where is_active = 1 ");
while ( $rw = $oBj->row($rs) ){
$email= $rw['email'];
$message1         = str_replace("########",$email,$message1);
$mail->AddAddress($email, "");
$mail->Subject    = $subject;
$mail->MsgHTML($message1);
$mail->Send();
}

我的问题是

  1. 一个电子邮件地址收到超过 500 封相同的电子邮件(发送重复)。
  2. 电子邮件直接进入垃圾邮件。
  3. 我不希望任何人看到其他人的电子邮件。现在一个电子邮件 ID 可以看到我向其发送电子邮件的所有其他人。

我问了关于优先级的问题,第一个更重要等等。请指导我在代码逻辑中遇到的问题。

4

3 回答 3

0

我可以建议使用http://www.mailgun.com/之类的服务。海量电子邮件发送需要付出巨大的努力才能正确完成(请参阅如何每周发送 100,000 封电子邮件?)。

Mailgun 每月免费提供前 10,000 封电子邮件,因此如果您每月发送一次或两次这些电子邮件,这项服务将是免费的。如果您确实每周发送它们,那么它们的价格无论如何都非常便宜。

于 2014-03-23T10:16:29.510 回答
0

Check Subscribe - Open-source project - a service which helps you in setting up Mail Sender application using GAE.

Its easy to install.

Why Subscribe?

  • Handles multiple applications. Just add your application's specific private key. It will handle all your unsubscriptions application wise.
  • Handles multiple sender depending on your type of mails. Add all sender's email address in your appengine application.
  • No need to handle your unsubscriptions while sending emails to your customers / users. Service already taking care of it. Append's unsubscribe link along with given body.
于 2014-06-11T08:20:07.327 回答
-1

对于问题一,我正在检查您的代码

对于问题 2, 您需要确保您的电子邮件签名服务器与您发送电子邮件地址的域名相同,这是一个很长的话题,一些细节在这里

http://sendgrid.com/blog/10-tips-to-keep-email-out-of-the-spam-folder/

对于问题 3

请将所有地址添加到密件抄送收件人而不是主要地址发送电子邮件作为密件

于 2014-03-23T10:04:45.007 回答