使用发送网格发送组消息,提供500内部服务器错误

时间:2012-12-08 08:12:54

标签: codeigniter email swiftmailer

我想使用发送网格发送群组消息。 我的小组有100名成员。当我发送群组消息时,会发送50到80封消息,然后显示空白页面:

NetworkError: 500 Internal Server Error

我的代码是,

set_time_limit (0);
$usernames = 'username'; // Must be changed to your username
$passwords = 'password';  // Must be changed to your password
// Create new swift connection and authenticate
$transport = Swift_SmtpTransport::newInstance('smtp.sendgrid.net', 25);
$transport ->setUsername($usernames);
$transport ->setPassword($passwords);
$swift = Swift_Mailer::newInstance($transport);
// Create a message (subject)
$message = new Swift_Message($subject);
// add SMTPAPI header to the message
$headers = $message->getHeaders();
$headers->addTextHeader('X-SMTPAPI', $hdr->asJSON());
// attach the body of the email
$message->setFrom($from);
$message->setBody($html, 'text/html');
$message->setTo($to);
$message->addPart($text, 'text/plain');
if ($recipients = $swift->send($message,$failures)){
    $message= 'Message sent';
}else{
    $message= "Something went wrong -  message not sent, please try later";
}

asJSON:

{
  "to": [
    ""
  ],
  "sub": {
    "-name-": [
      "anu"
    ],
    "-time-": [
      "12 PM"
    ]
  },
  "category": "initial",
  "filters": {
    "footer": {
      "settings": {
        "enable": 1,
        "text\/plain": "Thank you "
      }
    }
  }
}

2 个答案:

答案 0 :(得分:1)

我建议你研究一下排队解决方案。检查github中的slm/queue。对于长列表,它可能导致服务器超过最大执行时间。使用队列服务将解决该问题,并且所有消息将按顺序传递。

答案 1 :(得分:0)

看起来to参数是个问题:

"to": [
    ""
]

只需确保在输出中添加电子邮件即可:

"to": [
    "some@email.com"
]

对于这个答案,请转到@Swift上面。