Use Amazon SES to send emails with embedded images and arbitrary headers.
This plugin provides support for AWS's Simple Email Service for your WP site. It supports arbitrary custom headers and handles image embedding for you. It sends HTML messages with an automatically-generated plain-text counterpart.
By default, it overrides the native wp_mail function, so all you need to do is configure your AWS Keys and sender in Settings > SES4WP Options.Components
Before your call to wp_mail(), call
ses4wp_embed_image with an image handle and the path to your image. It will return a content_id for you to use in your src attribute.
Paths should be given relative to your webserver root. So for instance, to embed
wp-content/themes/twentyeleven/images/wordpress.png, you would omit the slash at the beginning.
$content_id = ses4wp_embed_image( 'my_image', 'wp-content/path/to/image.jpg' ); $mail_body = "This is an image. <img src='cid:$content_id' />"; wp_mail( 'firstname.lastname@example.org', 'My Subject', $mail_body );
The image will be attached to the email and delivered inline.