C# 向HTML电子邮件添加图片标题

C# 向HTML电子邮件添加图片标题,c#,email,html-email,C#,Email,Html Email,我正在尝试从应用程序发送自动电子邮件。 我遇到的主要问题是图片无法显示。 其次,我应该使用的实际资源是一个只能通过URL访问的PSD文件 附加代码来自前面的实验,它附加了我从第3行的对话框中选择的文件 谁能告诉我哪里出了问题 try{ OpenFileDialog diag = new OpenFileDialog(); diag.ShowDialog(); FileInfo inf = new FileInfo(diag

我正在尝试从应用程序发送自动电子邮件。
我遇到的主要问题是图片无法显示。 其次,我应该使用的实际资源是一个只能通过URL访问的PSD文件

附加代码来自前面的实验,它附加了我从第3行的对话框中选择的文件

谁能告诉我哪里出了问题

try{
            OpenFileDialog diag = new OpenFileDialog();
            diag.ShowDialog();

            FileInfo inf = new FileInfo(diag.FileName);


            string htmlBody = "<html><header><h1>TestPic</h1><br><img src=\"cid:filename\"></header></html>";
            AlternateView avHtml = AlternateView.CreateAlternateViewFromString
               (htmlBody, null, MediaTypeNames.Text.Html);

            LinkedResource inline = new LinkedResource(@inf.FullName, MediaTypeNames.Image.Jpeg);
            inline.ContentId = Guid.NewGuid().ToString();
            inline.ContentLink = new Uri("PSD_Url.com");

            avHtml.LinkedResources.Add(inline);

            MailMessage mail = new MailMessage();
            mail.AlternateViews.Add(avHtml);

            Attachment att = new Attachment(inf.FullName);
            att.ContentDisposition.Inline = true;

            mail.From = new MailAddress("from@gmail.com");
            mail.To.Add("to@gmail.com");
            mail.Subject = "Test Email";
            mail.Body = String.Format(
                       "<h3>TEST Has Sent You A Mail</h3>" +
                       @"<img src=""cid:{0}"" />", inline.ContentId);



            mail.IsBodyHtml = true;
            mail.Attachments.Add(att);
            mail.BodyEncoding = Encoding.Unicode;
            mail.HeadersEncoding = Encoding.Unicode;
            mail.SubjectEncoding = Encoding.Unicode;

            SmtpClient smp = new SmtpClient("mailhost.com", 80);
            smp.Credentials = new System.Net.NetworkCredential(@"from@gmail.com", @"password");
            smp.DeliveryFormat = SmtpDeliveryFormat.International;

            smp.Send(mail);
 }
 catch(SmtpException sEx)
 {
  throw sEx;  
 }
试试看{
OpenFileDialog diag=新建OpenFileDialog();
diag.ShowDialog();
FileInfo-inf=新的FileInfo(diag.FileName);
字符串htmlBody=“TestPic
”; AlternateView avHtml=AlternateView.CreateAlternateView-FromString (htmlBody,null,MediaTypeNames.Text.Html); LinkedResource inline=新的LinkedResource(@inf.FullName,MediaTypeNames.Image.Jpeg); inline.ContentId=Guid.NewGuid().ToString(); inline.ContentLink=新Uri(“PSD_Url.com”); avHtml.LinkedResources.Add(内联); MailMessage mail=新的MailMessage(); mail.AlternateViews.Add(avHtml); 附件att=新附件(inf.FullName); att.ContentDisposition.Inline=true; mail.From=新邮件地址(“from@gmail.com"); mail.To.Add(“to@gmail.com"); mail.Subject=“测试电子邮件”; mail.Body=String.Format( “测试已向您发送邮件”+ @“”,inline.ContentId); mail.IsBodyHtml=true; 邮件。附件。添加(附件); mail.BodyEncoding=Encoding.Unicode; mail.HeadersEncoding=Encoding.Unicode; mail.SubjectEncoding=Encoding.Unicode; SmtpClient smp=新的SmtpClient(“mailhost.com”,80); smp.Credentials=新系统.Net.NetworkCredential(@)from@gmail.com“,@“密码”); smp.DeliveryFormat=SmtpDeliveryFormat.International; 发送(邮件); } 捕获(SmtpException sEx) { 扔性; }
。PSD文件不会在大多数电子邮件客户端中呈现。它们仅限于.JPG、.PNG和.GIF。在您的情况下,您可能需要通过imagemagick或一些图像转换器运行.PSD以首先对其进行转换

除此之外,请确保图像URL是绝对的,并且是在线托管的,并且它应该可以工作

如果您使用
src=“cid:filename”
,那么您不应该使用
inline.ContentId=“filename”将两者链接起来?