Configuring modules for email sending and formatting is a pain and confusing. Most mailing modules rely on Mailsystem module to help configure this.
In D7 Mailsystem 3.x there's an improved method of doing this by using a delegator class. https://www.drupal.org/project/mailsystem/issues/1508104. I propose that the class and related functions be put into core. The UI can stay out of core.
This will help any combo of modules share the responsibility of sending emails. One module can be used for formatting HTML (MimeMail, HTMLmail) and another for sending (SMTP, PHPMailer, Postmark, SendGrid, ...). The popular modules can then use the new class to allow other modules to share in the work and also provide a simple UI (without needing to install Mailsystem if they don't need that extra power).
Recent comments
In a blog post titled "Github Tips and Tricks for Contrib Maintainers", I'd like to see some of the following topics: When is the README sufficient for documentation? When should...
Github Tips and Tricks for Contrib Maintainers
Thanks Alejandro. That was the clues I needed.
Ubercart - Programmatically add product to cart and straight to Checkout
Have you tried uc_cart_add_item()? You need to provide the nid of the product. Then you can use backdrop_goto('cart/checkout'); to send the user to the checkout screen. uc_cart_add_item...
Ubercart - Programmatically add product to cart and straight to Checkout