Вы можете реализовать постановку в очередь вручную, используя MySQL или какой-либо другой постоянный механизм, но вы также можете использовать JMS для организации очередей. Это почти идеальный вариант для подобных ситуаций.
В этом случае я бы соблазнился, отделив почтовый компонент от основного приложения, и позволил им общаться через JMS. Основное приложение помещает сообщение в JMS, а почтовое приложение подписывается на очередь и пытается обработать сообщения.
JMS можно легко сделать постоянным (например, MySQL) с помощью конфигурации.
Преимущество разделения веб-приложения состоит в том, что вы абстрагируете механизм уведомления и могли бы в будущем реализовать, например, Google Wave или IRC или что-то еще, не касаясь вашего основного приложения.
Кто-то еще предложил использовать postfix или sendmail и позволить им обрабатывать очереди. Это также отличное решение, особенно если вы поместили postfix или sendmail на localhost и позволили ему направлять сообщения дальше. Попытайтесь настроить эту почтовую программу так, чтобы разрешалась маршрутизация только почты с локального хоста, чтобы предотвратить создание открытой почтовой программы :)
РЕДАКТИРОВАТЬ пояснил использование JMS + комментарий к локальному демону почтовой программы