65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 LinkedResource 发送电子邮件

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2013 年 10 月 11 日

CPOL

2分钟阅读

viewsIcon

29183

简介 当您想要发送电子邮件时,您必须创建 MailMessage 和 SmtpClient 类的实例。 这些类位于

介绍 

当您想要发送电子邮件时,您必须创建 MailMessage 和 SmtpClient 类的实例。 这些类位于 System.Net.Mail 命名空间中。 在此示例中,aj 创建了 GetSmtpClient 方法,该方法返回一个 SmtpClient 对象,并带有参数

  • host:表示用于 SMTP 事务的服务器的 IP 或名称
  • port:表示用于 SMTP 事务的端口
  • user:表示用户名
  • password:表示帐户密码
  • enableSsl:指定是否使用安全套接字层 (SSL) 来加密连接

之后,我创建了 MailMessage 对象。 当您想要创建带有资源(图片等)的基于 HTML 的消息时,您必须使用 LinkedResource 类。LinkedResource 类表示电子邮件附件中嵌入的外部资源,例如图像。 对于每个链接的资源,您必须设置 ContentId,它唯一地标识资源。 在示例中,文件 "photo.jpg" 被添加,ContentId="photo"。

为了演示目的,我使用了 smtp.gmail.com 服务器。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Mail;

namespace SendMail
{
    class Program
    {
        static void Main(string[] args)
        {
            SmtpClient smtpClient = GetSmtpClient("smtp.gmail.com", 587, "GmailUserName@gmail.com", "password", true);


            MailMessage mail = new MailMessage();
            mail.From = new MailAddress("GmailUserName@gmail.com");
            mail.To.Add("AddressTo@hotmail.com");
            mail.Subject = "Test";
            string htmlBody="";
            htmlBody = htmlBody + "<img src=\"cid:photo\">" + Environment.NewLine;
            mail.IsBodyHtml = true;
            mail.Body = htmlBody;
            AlternateView htmlview = default(AlternateView);
            htmlview = AlternateView.CreateAlternateViewFromString(htmlBody, null, "text/html");
            LinkedResource imageResourceEs = new LinkedResource("photo.jpg");
            imageResourceEs.ContentId = "photo";
            imageResourceEs.TransferEncoding = System.Net.Mime.TransferEncoding.Base64;
            htmlview.LinkedResources.Add(imageResourceEs);
            mail.AlternateViews.Add(htmlview);
            try
            {
                smtpClient.Send(mail);
            }
            catch (Exception t)
            {
                Console.WriteLine(t.Message);
            }

        }

        static SmtpClient GetSmtpClient(string host, int port, string user, string password, bool enableSsl)
        {
            SmtpClient smtpClient = new SmtpClient();
            smtpClient.Host = host;
            smtpClient.Port = port;
            NetworkCredential cred = new NetworkCredential(user, password);
            smtpClient.EnableSsl = enableSsl;
            smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
            smtpClient.UseDefaultCredentials = false;
            smtpClient.Timeout = 5000;
            smtpClient.Credentials = cred;
            return smtpClient;
        }
    }
}


 链接

http://msdn.microsoft.com/en-us/library/system.net.mail.linkedresource.aspx 

© . All rights reserved.