What program do I have to call to send an email? Can I just use mail(1) for that?
Lumail and mu4e will allow you to use the configured smtp mail handler of your choice. For example lumail has a config line of "/usr/sbin/sendmail -t" to invoke sendmail with your formatted email message. I.e. it will need the extra headers added to the text.
Is this just sendmail(1)? How many sendmails would normally be in the path? What is the difference between mail(1) and sendmail(1)? Do they go to different places?
From the doc it seems folks like to have different sendmails installed. I only have open smtp. Mail(1) interfaces to sendmail and adds the needed headers by sendmail. I.e From, To, Subject. Sendmail takes a message and based on your config and rules relays it to your ISP.
Yes it is just sendmail(1).
Is there a preferred pipeline? It sounds like using mail(1) lets you be lazy, but ultimately you want to be calling one of the sendmail variants directly?
Only sendmail(1) should be used. Mail(1) is not always installed and can interfere with the creation of a message.