Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Email 如何发送完整的html+;启用图像的邮件发送给订阅者_Email_C# 4.0_Gmail_Asp.net 4.0 - Fatal编程技术网

Email 如何发送完整的html+;启用图像的邮件发送给订阅者

Email 如何发送完整的html+;启用图像的邮件发送给订阅者,email,c#-4.0,gmail,asp.net-4.0,Email,C# 4.0,Gmail,Asp.net 4.0,我刚刚创建了一个新闻稿应用程序,它可以向大量订阅者发送支持html和嵌入图像的邮件。我有一些小问题,收到邮件到我的gmail帐户。无法获取要阅读的完整html邮件。这是我的密码: private static void SendEmail(string fromName, string fromEmailAddress, string emailpassword, string smtphost, int smtpport, bool enableSSL, string toEmailAddre

我刚刚创建了一个新闻稿应用程序,它可以向大量订阅者发送支持html和嵌入图像的邮件。我有一些小问题,收到邮件到我的gmail帐户。无法获取要阅读的完整html邮件。这是我的密码:

private static void SendEmail(string fromName, string fromEmailAddress, string emailpassword, string smtphost, int smtpport, bool enableSSL, string toEmailAddress, string subject, string plainText, List<string> file_names, int templateID, bool IsUnsubscriptionLink, SmtpClient client)
    {
        MailMessage msg = new MailMessage();
        if (fromName != null)
            msg.From = new MailAddress(fromName + " <" + fromEmailAddress + ">");
        else
            msg.From = new MailAddress(fromEmailAddress);
        msg.To.Add(new MailAddress(toEmailAddress));
        msg.Subject = subject;
        msg.IsBodyHtml = true;
        client.Host = smtphost;
        System.Net.NetworkCredential basicauthenticationinfo = new System.Net.NetworkCredential(fromEmailAddress, emailpassword);
        client.Port = smtpport;
        client.EnableSsl = enableSSL;
        client.UseDefaultCredentials = false;
        client.Credentials = basicauthenticationinfo;
        client.DeliveryMethod = SmtpDeliveryMethod.Network;
        msg.Priority = MailPriority.High;
        msg.Subject = subject;
        string rbody = ConvertAllString(plainText, templateID);
        string fbody = rbody.Replace("\"", "'");
        if (fbody.Contains("src='cid:"))
        {
            var htmlView = AlternateView.CreateAlternateViewFromString(msg.Body, null, "text/html");
            do
            {
                int src = fbody.IndexOf("src='cid:");
                if (src != -1)
                {
                    fbody = fbody.Remove(0, src + 9);
                    var dot = Regex.Match(fbody, @"\.(jpg|jpeg|gif|png)");
                    if (dot.Success)
                    {
                        int comma = fbody.IndexOf("'");
                        if (comma != -1)
                        {
                            if (!string.IsNullOrEmpty(fbody.Substring(0, comma)))
                            {
                                string imageSource = Path.Combine(HttpRuntime.AppDomainAppPath, "EmailImages\\", fbody.Substring(0, comma));
                                var leftImageLink = (dynamic)null;
                                switch (Path.GetExtension(imageSource).ToLower())
                                {
                                    case ".jpg":
                                        leftImageLink = new LinkedResource(imageSource, "image/jpg")
                                        {
                                            ContentId = fbody.Substring(0, comma),
                                            TransferEncoding = System.Net.Mime.TransferEncoding.Base64
                                        };
                                        break;
                                    case ".jpeg":
                                        leftImageLink = new LinkedResource(imageSource, "image/jpeg")
                                        {
                                            ContentId = fbody.Substring(0, comma),
                                            TransferEncoding = System.Net.Mime.TransferEncoding.Base64
                                        };
                                        break;
                                    case ".gif":
                                        leftImageLink = new LinkedResource(imageSource, "image/gif")
                                        {
                                            ContentId = fbody.Substring(0, comma),
                                            TransferEncoding = System.Net.Mime.TransferEncoding.Base64
                                        };
                                        break;
                                    case ".png":
                                        leftImageLink = new LinkedResource(imageSource, "image/png")
                                        {
                                            ContentId = fbody.Substring(0, comma),
                                            TransferEncoding = System.Net.Mime.TransferEncoding.Base64
                                        };
                                        break;
                                }
                                htmlView.LinkedResources.Add(leftImageLink);
                            }
                        }
                    }
                }
            }
            while (fbody.Contains("src='cid:"));
            msg.AlternateViews.Add(htmlView);
        }
        if (templateID > 0)
        {
            //do smething else
        }
        if (file_names.Count > 0)
        {
            using (DataClassesDataContext db = new DataClassesDataContext())
            {
                for (int i = 0; i < file_names.Count; i++)
                {
                    Attachment mailAttachment = new Attachment(Path.Combine(HttpRuntime.AppDomainAppPath, "EmailFiles/" + file_names[i].ToString()));
                    msg.Attachments.Add(mailAttachment);
                }
            }
        }
        if (IsUnsubscriptionLink.Equals(1))
        {
            string pathToApp = ConfigurationManager.AppSettings["EASYMAIL_PathToApplication"];
            string unsubscribeText = "<br/>\r\n\r\n---------------------------\r\n<br/>" +
                                     "To unsubscribe, please click this link:\r\n" +
                                     pathToApp + "Unsubscribe.aspx";
            msg.Body = plainText + unsubscribeText;
        }
        else
        {
            msg.Body = plainText + string.Empty;
        }
        client.Send(msg);
    }
private static void sendmail(string fromName、string fromailaddress、string emailpassword、string smtphost、int smtpport、bool enablesl、string to mailaddress、string subject、string明文、列表文件名、int templateID、bool IsUnsubscriptionLink、SmtpClient客户端)
{
MailMessage msg=新的MailMessage();
if(fromName!=null)
msg.From=新邮件地址(fromName+“”);
其他的
msg.From=新邮件地址(fromEmailAddress);
msg.To.Add(新邮件地址(toEmailAddress));
msg.Subject=主语;
msg.IsBodyHtml=true;
client.Host=smtphost;
System.Net.NetworkCredential basicauthenticationinfo=新的System.Net.NetworkCredential(来自EmailAddress、emailpassword);
client.Port=smtpport;
client.enablesl=enablesl;
client.UseDefaultCredentials=false;
client.Credentials=basicauthenticationinfo;
client.DeliveryMethod=SmtpDeliveryMethod.Network;
msg.Priority=MailPriority.High;
msg.Subject=主语;
string rbody=ConvertAllString(纯文本,templateID);
字符串fbody=rbody.Replace(“\”,“”);
if(fbody.Contains(“src='cid:))
{
var htmlView=AlternateView.CreateAlternateViewFromString(msg.Body,null,“text/html”);
做
{
intsrc=fbody.IndexOf(“src='cid:”);
如果(src!=-1)
{
fbody=fbody.移除(0,src+9);
var dot=Regex.Match(fbody,@“\(jpg | jpeg | gif | png)”;
如果(点成功)
{
int逗号=fbody.IndexOf(“');
如果(逗号!=-1)
{
如果(!string.IsNullOrEmpty(fbody.Substring(0,逗号)))
{
字符串imageSource=Path.Combine(HttpRuntime.AppDomainAppPath,“EmailImages\\”,fbody.Substring(0,逗号));
var leftImageLink=(动态)null;
开关(Path.GetExtension(imageSource.ToLower())
{
案例“.jpg”:
leftImageLink=新的LinkedResource(imageSource,“图像/jpg”)
{
ContentId=fbody.Substring(0,逗号),
Transferncode=System.Net.Mime.transferncode.Base64
};
打破
大小写“.jpeg”:
leftImageLink=新的LinkedResource(imageSource,“图像/jpeg”)
{
ContentId=fbody.Substring(0,逗号),
Transferncode=System.Net.Mime.transferncode.Base64
};
打破
大小写“.gif”:
leftImageLink=新的LinkedResource(imageSource,“图像/gif”)
{
ContentId=fbody.Substring(0,逗号),
Transferncode=System.Net.Mime.transferncode.Base64
};
打破
案例“.png”:
leftImageLink=新的LinkedResource(imageSource,“图像/png”)
{
ContentId=fbody.Substring(0,逗号),
Transferncode=System.Net.Mime.transferncode.Base64
};
打破
}
添加(leftImageLink);
}
}
}
}
}
while(fbody.Contains(“src='cid:));
msg.AlternateViews.Add(htmlView);
}
如果(templateID>0)
{
//做别的事
}
如果(文件名.Count>0)
{
使用(DataClassesDataContext db=newdataclassesdatacontext())
{
对于(int i=0;i\r\n\r\n-----------------------------------------\r\n
”+ 要取消订阅,请单击此链接:\r\n+ pathToApp+“Unsubscribe.aspx”; msg.Body=纯文本+取消订阅文本; } 其他的 { msg.Body=纯文本+字符串.Empty; } client.Send(msg); }
以下是我的gmail输出,用于将邮件发送到我的帐户:

从gmail生成的我的原始邮件是:

我怎么

var v = []
    v.push({filename: "file_name_to_show", path: 'path_to_image', cid:'va'});

var mail = {
        from: "from_id",
        to: "to_id",
        subject: "adasda",
        text: "sample format",
        html: 'attach html object',
        attachments: v

    };