In earlier version of 7 I've found it doesn't reprocess failed emails and simply created my own scheduled task to call the send all failed emails. I've scheduled it to run every few hours. In v8, there is already a task for this. You'll have to create the module and task code to call this code but it's pretty simple.
protected void ResendFailedEmails(ref string result)
{
try
{
if (!EmailHelper.Queue.SendingInProgess)
{
EmailHelper.Queue.SendAllFailed();
result = ResHelper.GetString("kwiktrip.completesuccessfully");
}
else
{
result = "Send already in progress.";
}
}
catch (Exception ex)
{
result = ex.Message;
}
}