Email 如何从本地asp.net 4.0 web应用程序发送启用图像的电子邮件

Email 如何从本地asp.net 4.0 web应用程序发送启用图像的电子邮件,email,c#-4.0,ckeditor,html-email,asp.net-4.0,Email,C# 4.0,Ckeditor,Html Email,Asp.net 4.0,我已经做了一个电子邮件管理系统,可以发送电子邮件和保存为草稿电子邮件。我有一个更大的问题是发送带有图像的电子邮件。我试了很多次,但还没完。我只想将启用图像功能的电子邮件发送到发件人地址 在这里,我将电子邮件正文作为ntext数据类型存储到sql server,然后发送到邮件地址。在这里,我把我的表格屏幕截图的一般想法。如何从ckeditor检索电子邮件正文,以及如何存储它 这是我如何检索电子邮件正文的表单: 这是我如何将电子邮件正文存储到db的linqpad屏幕截图: 现在只需关注标题为“启

我已经做了一个电子邮件管理系统,可以发送电子邮件和保存为草稿电子邮件。我有一个更大的问题是发送带有图像的电子邮件。我试了很多次,但还没完。我只想将启用图像功能的电子邮件发送到发件人地址

在这里,我将电子邮件正文作为ntext数据类型存储到sql server,然后发送到邮件地址。在这里,我把我的表格屏幕截图的一般想法。如何从ckeditor检索电子邮件正文,以及如何存储它

这是我如何检索电子邮件正文的表单:

这是我如何将电子邮件正文存储到db的linqpad屏幕截图:

现在只需关注标题为“启用图像的电子邮件”的最后一条记录,它有图像的电子邮件正文,现在我只想将此图像检索到电子邮件

我还将finally receiver got电子邮件的最终输出包括在此表格中:

这是gmail的原始邮件视图:

From: shalinbgajjar7008@gmail.com 
To:  
Date: Tue, 23 Dec 2014 19:30:58 +0530 
Subject: Image Enabled Email 

<table border="0" cellpadding="1" cellspacing="1" style="width: 700px;">
    <tbody>
        <tr>
            <td>
                <img alt="" src="/NewsLetter/images/Winter.jpg" style="width: 500px; height: 375px;" /></td>
            <td>
                <h3>
                    <span style="font-family:tahoma,geneva,sans-serif;"><span style="font-size:28px;">This is Image Enabled Mail For Testing </span></span></h3>
            </td>
        </tr>
    </tbody>
</table>
<p>
     </p>
在这里,我放置了从web应用程序发送电子邮件的代码:

public static void SendReplyMail(string subject, string Host, string Port, string email, string password, string emails, string ccs, string bccs, string body, List<string> file_names)
    {
        MailMessage msg = new MailMessage();
        System.Net.Mail.SmtpClient client = Util.GetSmtpClient();
        msg.IsBodyHtml = true;
        client.Host = Host;
        System.Net.NetworkCredential basicauthenticationinfo = new System.Net.NetworkCredential(email, password);
        client.Port = int.Parse(Port);
        client.EnableSsl = true;
        client.UseDefaultCredentials = false;
        client.Credentials = basicauthenticationinfo;
        client.DeliveryMethod = SmtpDeliveryMethod.Network;
        msg.From = new MailAddress(email);
        if (emails.Contains(","))
        {
            string[] values1 = emails.Split(',');
            for (int i = 0; i < values1.Length; i++)
            {
                values1[i] = values1[i].Trim();
            }
            foreach (var item1 in values1)
            {
                msg.To.Add(new MailAddress(item1.ToString()));
            }
        }
        else
        {
            msg.To.Add(new MailAddress(emails));
        }
        if (!string.IsNullOrEmpty(ccs))
        {
            if (ccs.Contains(","))
            {
                string[] values2 = ccs.Split(',');
                for (int i = 0; i < values2.Length; i++)
                {
                    values2[i] = values2[i].Trim();
                }
                foreach (var item2 in values2)
                {
                    msg.CC.Add(new MailAddress(item2.ToString()));
                }
            }
            else
            {
                msg.CC.Add(new MailAddress(ccs));
            }
        }
        if (!string.IsNullOrEmpty(bccs))
        {
            if (bccs.Contains(","))
            {
                string[] values3 = bccs.Split(',');
                for (int i = 0; i < values3.Length; i++)
                {
                    values3[i] = values3[i].Trim();
                }
                foreach (var item3 in values3)
                {
                    msg.Bcc.Add(new MailAddress(item3.ToString()));
                }
            }
            else
            {
                msg.Bcc.Add(new MailAddress(bccs));
            }
        }
        msg.Subject = subject;
        msg.Body = body;
        using (DataClassesDataContext db = new DataClassesDataContext())
        {
            for (int i = 0; i < file_names.Count; i++)
            {
                Attachment mailAttachment = new Attachment(Path.Combine(HttpRuntime.AppDomainAppPath, "EmailFiles/" + db.Files.Where(f => f.File_name.Equals(file_names[i].Substring(0,15))).Select(f => f.File_name + f.File_ext).SingleOrDefault().ToString()));
                msg.Attachments.Add(mailAttachment);
            }
        }
        client.Send(msg);
    }
public static void SendReplyMail(字符串主题、字符串主机、字符串端口、字符串电子邮件、字符串密码、字符串电子邮件、字符串ccs、字符串密件抄送、字符串正文、列表文件名)
{
MailMessage msg=新的MailMessage();
System.Net.Mail.SmtpClient client=Util.GetSmtpClient();
msg.IsBodyHtml=true;
client.Host=Host;
System.Net.NetworkCredential basicauthenticationinfo=新的System.Net.NetworkCredential(电子邮件、密码);
client.Port=int.Parse(端口);
client.enablesl=true;
client.UseDefaultCredentials=false;
client.Credentials=basicauthenticationinfo;
client.DeliveryMethod=SmtpDeliveryMethod.Network;
msg.From=新邮件地址(电子邮件);
if(emails.Contains(“,”))
{
字符串[]值1=emails.Split(',');
对于(int i=0;if.File\u name.Equals(File\u name[i].子字符串(0,15)))。选择(f=>f.File\u name+f.File\u ext.SingleOrDefault().ToString());
msg.Attachments.Add(邮件附件);
}
}
client.Send(msg);
}
当html主体有图像标记时,是否有人知道如何编写图像二进制文件。 请帮帮我…


这看起来像是做了您想做的事情。

有一种方法可以将图像添加到托管网站的图像文件夹中,并将其完整路径附加到html内容中的ckeditor images src。但这是一种非常古老的方法,而且动态发送启用图像的电子邮件非常耗时。我对base64编码很感兴趣,但我如何使用我的代码有人知道。这是否适用于html正文中的多个图像?如果是,你能用asp.net 4.0和c#制作适合我的web应用程序的代码吗?所以你不想知道如果我只想从我的本地web应用程序(非托管)发送此图像嵌入邮件,那么我想修复它,哪种方法适合我的web应用程序。
public static void SendReplyMail(string subject, string Host, string Port, string email, string password, string emails, string ccs, string bccs, string body, List<string> file_names)
    {
        MailMessage msg = new MailMessage();
        System.Net.Mail.SmtpClient client = Util.GetSmtpClient();
        msg.IsBodyHtml = true;
        client.Host = Host;
        System.Net.NetworkCredential basicauthenticationinfo = new System.Net.NetworkCredential(email, password);
        client.Port = int.Parse(Port);
        client.EnableSsl = true;
        client.UseDefaultCredentials = false;
        client.Credentials = basicauthenticationinfo;
        client.DeliveryMethod = SmtpDeliveryMethod.Network;
        msg.From = new MailAddress(email);
        if (emails.Contains(","))
        {
            string[] values1 = emails.Split(',');
            for (int i = 0; i < values1.Length; i++)
            {
                values1[i] = values1[i].Trim();
            }
            foreach (var item1 in values1)
            {
                msg.To.Add(new MailAddress(item1.ToString()));
            }
        }
        else
        {
            msg.To.Add(new MailAddress(emails));
        }
        if (!string.IsNullOrEmpty(ccs))
        {
            if (ccs.Contains(","))
            {
                string[] values2 = ccs.Split(',');
                for (int i = 0; i < values2.Length; i++)
                {
                    values2[i] = values2[i].Trim();
                }
                foreach (var item2 in values2)
                {
                    msg.CC.Add(new MailAddress(item2.ToString()));
                }
            }
            else
            {
                msg.CC.Add(new MailAddress(ccs));
            }
        }
        if (!string.IsNullOrEmpty(bccs))
        {
            if (bccs.Contains(","))
            {
                string[] values3 = bccs.Split(',');
                for (int i = 0; i < values3.Length; i++)
                {
                    values3[i] = values3[i].Trim();
                }
                foreach (var item3 in values3)
                {
                    msg.Bcc.Add(new MailAddress(item3.ToString()));
                }
            }
            else
            {
                msg.Bcc.Add(new MailAddress(bccs));
            }
        }
        msg.Subject = subject;
        msg.Body = body;
        using (DataClassesDataContext db = new DataClassesDataContext())
        {
            for (int i = 0; i < file_names.Count; i++)
            {
                Attachment mailAttachment = new Attachment(Path.Combine(HttpRuntime.AppDomainAppPath, "EmailFiles/" + db.Files.Where(f => f.File_name.Equals(file_names[i].Substring(0,15))).Select(f => f.File_name + f.File_ext).SingleOrDefault().ToString()));
                msg.Attachments.Add(mailAttachment);
            }
        }
        client.Send(msg);
    }