I'm not sure it will make a difference but I would try commenting out the line
Code:
echo $infect['title']."-";
(make it)
Code:
//echo $infect['title']."-";
instead.
echo will post data to the browser, it isn't something you usually want to do when running a scheduled task automatically, if used there should be a check to make sure it is being run manually.
The thing is, while it shouldn't be used best I can tell, I don't see why it would result in blank emails- but it's the only thing that sticks out at me right now.