Three days were spent investigating and addressing those hiccups, and I can now share my newly found knowledge of the possible problems arising from updating Magento to 1.9.
First of all, Magento 1.9+ relies completely on cron jobs to send transactional emails. If you didn’t have cron jobs set up properly before, you are going to have to do it now.
First of all make sure you have set up cron tasks in the Magento admin under
System > Configuration > Advanced > System > Cron. The default settings are:
Generate Schedules Every: 15
Schedule Ahead for: 20
Missed if Not Run Within: 15
History Cleanup Every: 10
Success History Lifetime: 60
Failure History Lifetime: 600
There are people suggesting these settings should be changed, but since they can’t seem to agree on the best combination, I’d rather leave it as it is.
You then need to go into your hosting control panel and set up cron jobs. In cPanel it’s under Advanced > Cron Jobs. Set them up to run every five minutes and use this command:
php -f /home/username/public_html/cron.php
Check that the above path is correct and that the file cron.php is actually there in the root of your Magento installation (if you’ve just upgraded, it should be). Change username to the correct account.
Now, I initially made the mistake of following the advice of the developers at xtento.com who say to use a wget command string:
wget -O /dev/null -q http://www.YOURDOMAIN.com/PATH_TO_MAGENTO/cron.php.
This did not work for me at all, whereas the php command did, so my advice is: stick with that.