the scriptlet i posted is what i've put in a scheduled job before;
just letting it run once a day deletes anything older than 30 days;
that's what would be my simple sugestion to keep the data under control, especially if you have a fairly busy usage of database mail.
DECLARE @DeleteBeforeDate DateTime
SELECT @DeleteBeforeDate = DATEADD(d,-30, GETDATE())
EXEC sysmail_delete_mailitems_sp @sent_before = @DeleteBeforeDate
EXEC sysmail_delete_log_sp @logged_before = @DeleteBeforeDate
Lowell