Email 如何发送完整的html+;启用图像的邮件发送给订阅者
我刚刚创建了一个新闻稿应用程序,它可以向大量订阅者发送支持html和嵌入图像的邮件。我有一些小问题,收到邮件到我的gmail帐户。无法获取要阅读的完整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
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
};