Crie o contéudo HTML:
private string CriaHtml()
{
StringBuilder html = new StringBuilder();
//
// Aqui vai seu conteúdo HTML
//
html.Append("<img src='cid:imagem1' />"); //Referência a imagem
//
// Aqui vai seu conteúdo HTML
//
return html.ToString();
}
Enviar e-mail:
public bool EnviaEmail()
{
System.Net.Mail.MailMessage email = new System.Net.Mail.MailMessage();
SmtpClient hostOrigem = new SmtpClient();
Attachment ArquivoAnexo = null;
string corpo = CriaHtml(idProduto);
email.From = new System.Net.Mail.MailAddress("----email-destino----");
email.Subject = "--Assunto--"
AlternateView view =
AlternateView.CreateAlternateViewFromString(corpo, null, MediaTypeNames.Text.Html);
LinkedResource resource = new LinkedResource("-----CaminhoImagem------");
resource.ContentId = "imagem1"; //Referencia a iagem criada no método CriaHtml
view.LinkedResources.Add(resource);
email.AlternateViews.Add(view);
email.IsBodyHtml = true;
ArquivoAnexo = new Attachment(CaminhoAnexo, MediaTypeNames.Application.Octet);
email.Attachments.Add(ArquivoAnexo);
hostOrigem.Host = "--e-mail origem";
hostOrigem.Port = --porta servidor---;
hostOrigem.Credentials = new NetworkCredential("---e-mail origem---", "--senha--");
hostOrigem.EnableSsl = true;
email.To.Add(mailDestino);
hostOrigem.Send(email);
email.To.Clear();
email.Dispose();
ArquivoAnexo.Dispose();
hostOrigem.Dispose();
}
O LinkedResource é que vai enviar as imagens junto do e-mail.
Agora dependendo do servidor as imagens só aparecerão se o usuário autorizar, por causa dos filtros de anti-spam.
Ninguém falou que seria fácil!