1

埋め込み画像として html と添付ファイルを含むメールを送信する質問があります。画像フォルダーの画像を div の背景として使用する方法がわかりません。

ここに私のコード:

SmtpMail oMail = new SmtpMail("TryIt");
            SmtpClient oSmtp = new SmtpClient();

            oMail.From = "test@emailarchitect.net";

            oMail.To = "<my email>";

            oMail.Subject = "test";

            SmtpServer oServer = new SmtpServer("<smtp server>");

            try
            {
               // Attachment header = oMail.AddAttachment("d:\\mail_header.jpg");
                Attachment header = oMail.AddAttachment("images/mail_header.jpg"); // this don't work
                Attachment oAttachment = oMail.AddAttachment("d:\\bg_content.jpg");
                Attachment Footer = oMail.AddAttachment("d:\\mail_footer.jpg");

                string contentID_header = "header";
                header.ContentID = contentID_header; 

                string contentID = "test001@host";
                oAttachment.ContentID = contentID;

                string contentID_footer = "footer";
                Footer.ContentID = contentID_footer; 

//how I can use a pic as background

                oMail.HtmlBody = "<html><body>"+
                                    "<div style='background-image:url(" + contentID_header + ");width: 800px;height: 50px'></div>" +
                                    "<div><img src=\"cid:" + contentID + "\"></div>" +
                                    "<div><img src=\"cid:" + contentID_footer + "\"></div>" +
                                    "</body></html>";

                oSmtp.SendMail(oServer, oMail); 

            }
            catch (Exception ep)
            {
                txtSimulate.Text = ep.Message; 
            } 
4

4 に答える 4

3

私はこのコードを使用しています。CIDS をハードコーディングするよりもはるかに優れています。

それを確認してください:

System.Net.Mail.MailMessage Mensaje = new System.Net.Mail.MailMessage("mail@host.com",DireccionCorreo);

System.Net.Mail.AlternateView htmlView = System.Net.Mail.AlternateView.CreateAlternateViewFromString(Body, null, "text/html");


System.Net.Mail.LinkedResource logo = new System.Net.Mail.LinkedResource("logoimage.jpg");
logo.ContentId = "logoimage";
htmlView.LinkedResources.Add(logo);

System.Net.Mail.LinkedResource logoExchange = new System.Net.Mail.LinkedResource("logoexchange.png");
logoExchange.ContentId = "logoexchange";
htmlView.LinkedResources.Add(logoExchange);

System.Net.Mail.LinkedResource tut1 = new System.Net.Mail.LinkedResource(Application.StartupPath + "/OutlookGuide/tut1.jpg");
tut1 .ContentId = "tut1";
htmlView.LinkedResources.Add(tut1 );

System.Net.Mail.LinkedResource tut2 = new   System.Net.Mail.LinkedResource(Application.StartupPath + "/OutlookGuide/tut2.jpg");
tut2.ContentId = "tut2";
htmlView.LinkedResources.Add(tut2);


Mensaje.AlternateViews.Add(htmlView);
于 2012-12-05T12:17:39.670 に答える
1

asp.netについては知りませんが、PHPでは画像をBase64エンコーディングに変換してから使用します

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIA..." />
于 2012-12-05T12:14:27.653 に答える
1

画像のフルパスを指定する必要があります。

于 2012-12-05T12:16:52.477 に答える
1

まず、このプロジェクトを見つけました。

ただし、基本的には、画像を電子メール メッセージ自体に「埋め込む」ため、それをリンクされたリソースとして追加し、添付されたリソースを電子メールの HTML で参照する必要があります。

于 2012-12-05T12:18:27.883 に答える