Sending group messages using send grid, gives 500 Internal Server Error
Asked Answered
F

2

8

I want to send group messages using send grid. My group have 100 members.When I send a group message, 50 to 80 messages are delivered and then it shows a blank page as:

NetworkError: 500 Internal Server Error

My Code is,

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 "
      }
    }
  }
}
Finalize answered 8/12, 2012 at 8:12 Comment(6)
Could you give us the output of asJSON? It would help with debugging.Stiletto
@Stiletto output of asJSON is {"to": [""], "sub": {"-name-": ["anu"], "-time-": ["12 PM"]}, "category": "initial", "filters": {"footer": {"settings": {"enable":1,"text\/plain": "Thank you "}}}}Finalize
Looks like to to parameter is the issue. Doesn't look like $to is set in your code.Stiletto
Also, beware the limitations pr day. sendgrid.com/docs/User_Guide/sending_practices.htmlEmbodiment
Check if you are not out of some resources like memory limit, max execution time limit, CPU usage limit, or other. You should find that information in php log file, so turn on error loging if it is not. It is also good idea to have a look at http server log file.Silvertongued
Have you looked at what Robert asked? Check your php errors.log. Please provide some response - this is 4 months old.Crawley
R
1

I suggest you look into queeing solution . Check slm/queue in github for that. For long lists it may cause the server to exceed the maximum execution time, Using queue services will solve that, and all messages will be delivered in sequence.

Reparable answered 16/10, 2014 at 8:30 Comment(0)
H
0

Looks like the to parameter is the issue:

"to": [
    ""
]

Just make sure that you add an email to the output and you should be good:

"to": [
    "[email protected]"
]

Credit to @Swift above for this answer.

Hoberthobey answered 27/3, 2014 at 5:40 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.