How can I batch remote mail to be sent using my ISP while delivering local mail immediately?
First, you need to get sendmail not to use DNS on your local machine so your host doesn’t trying to connect to your ISP for a DNS query. See Q3.22 for more information. You also need to designate a “smart host” or external relay to handle all mail that you can’t deliver locally (this would be your ISP’s mailhost). You need to configure it so that the smtp mailer is considered “expensive” by adding the F=e mailer flag and tell sendmail not to connect to expensive mailers by default by setting the HoldExpensive option to True. You need to add mydomain.com to the sendmail.cw file or the Cw line in the sendmail.cf. See Q4.5. Finally, you need to run a program periodically to check in with your ISP and get them to deliver any mail they may have queued for you. See Q3.23. Andrzej Filip offers a different solution based on use of the dsmtp mailer (introduced in 8.10) instead of expensive mailers.