将嵌入图像发送到gmail jquery c#mvc的问题

时间:2017-11-11 13:40:58

标签: image email outlook gmail

我正面临发送电子邮件的问题。实际上,我正在尝试在邮件正文中发送包含更多文本和许多图像的电子邮件。我正在使用jquery和c#controller来完成这项工作。

以下代码更好地解释了一下:

在jquery中,我正在使用

$scope.SendEMailNew = function () {

    var data = new FormData();
    var ToEmail = $("#emailTo").val();
    var CcEmail = $("#emailCc").val();
    var Subject = $("#emailSubject").val();        
    var Message = document.getElementById(divID).outerHTML;

        data.append("ToEmail", ToEmail);
        data.append("CcEmail", CcEmail);
        data.append("Subject", Subject);
        data.append("Message", Message);

        mailsendingIndicator();
        $.ajax({
            url: ApplicationUrl + 'SendEmail/MailSend',              
            type: "POST",
            processData: false,
            contentType: false,
            data: data,
            success: function (response) {

                hidemailsendingIndicator();
                toastr.clear();
                toastr.success("Mail sent successfully", opts);
            },
            error: function (er) {
                hidemailsendingIndicator();
                toastr.clear();
                toastr.error("Something went wrong", opts);
            }
        });

在c#mvc控制器中,我正在使用

    [AcceptVerbs(HttpVerbs.Post)]
    public void MailSend(SendEmail MailDetails)
    {         
            string result = string.Empty;   
            string from = "FromMail@gmail.com"; 

            using (MailMessage mail = new MailMessage(from,MailDetails.ToEmail))
                {
                    mail.Subject = MailDetails.Subject;
                    mail.Body = MailDetails.Message;                       
                    mail.IsBodyHtml = true;                                                         

                    if (!string.IsNullOrEmpty(MailDetails.CcEmail))
                        mail.CC.Add(MailDetails.CcEmail);

                    SmtpClient smtp = new SmtpClient();
                    smtp.Host = "smtp.gmail.com";                      
                    smtp.EnableSsl = true;                 
                    NetworkCredential networkCredential = new NetworkCredential("FromMail@gmail.com", "Password");
                    smtp.UseDefaultCredentials = true;
                    smtp.Credentials = networkCredential;
                    smtp.Port = 587;                   
                    smtp.Send(mail);
                }              
    }

在此代码之后,电子邮件可以与嵌入图像一起发送到我的官方邮件ID和我的客户端的邮件ID,但是gmail和outlook邮件,嵌入的图像不显示。

特别是在Outlook邮件中,我没有选择下载图像本身。在gmail中,我将图像作为基本64代码。实际上,图像作为字节存储在数据库中,并通过ajax调用检索到jquery。我长期面对这个问题。

这类问题的解决方案是什么?任何想法都会有很大的帮助

由于

0 个答案:

没有答案