First of all, don't reInvent the wheel, it's a wastage of time, money - everything.
- If you want to stick with the WordPress' way, better be with a Custom Post Type. Create a custom post type for storing emails in its postmeta.
- Make a form, and save the values to the CPT's postmeta
- Make a Menu Page and do use the Settings API and make your email template settings.
- As per the settings, send your emails through
wp_mail()
- If you want to make your own table, go with $wpdb, and you know the rest
I think this is it. But...
Just read this article today, quoting from there on first hand:
It is worth noting that the
mail()
function is not suitable for larger volumes of email in a loop. This function opens and closes an SMTP socket for each email, which is not very efficient.
For the sending of large amounts of email, see the » PEAR::Mail, and » PEAR::Mail_Queue packages.
There are many issues, you need to consider before reInventing the wheel:
- Wastage of Time
- Wastage of Money
- You need a heavy mailer that doesn't ban (or make spam) your mails in the user end
- You need email templates that supports various email clients, and behave normally
- And so on...
Better rely on a better plugin (plugin doesn't always mean that they are bad) or any 3rd party service. I know Mailchimp is a nicer solution. But there are many you can rely.