C #, изменения в растровом изображении отражаются на веб-странице, но при отправке в виде вложения не отображаются примененные изменения - PullRequest
0 голосов
/ 27 октября 2018

Я работаю на сайте, используя .net с c #. Мое требование - отправлять «динамические» изображения в виде вложений по электронной почте (используя sendgrid). Но, когда я это делаю, изменения применяются к изображению, но когда я получаю, вложение все еще показывает пустое (неизменное) изображение.

protected void Button1_Click(object sender, EventArgs e)
{


    string totp1 = totp.Text;
    Session["totp"] = totp1;
    //lshowotp4valid.Text = Session["userotp"].ToString();
    int a =Convert.ToInt32( Session["totp"]);
    if (a.Equals(Session["randomNumber"]))
    {

        PrincipalContext AD = new PrincipalContext(ContextType.Domain, "...");
        UserPrincipal u = new UserPrincipal(AD)
        {
            SamAccountName = Session["username"].ToString()
        };
        PrincipalSearcher search = new PrincipalSearcher(u);
        UserPrincipal result = (UserPrincipal)search.FindOne();
        result.SetPassword(".....");
        System.Drawing.Image bitmap = (System.Drawing.Image)Bitmap.FromFile(Server.MapPath("/images/blank2.JPG")); // set image 
                                                                                                                   //draw the image object using a Graphics object
        Graphics graphicsImage = Graphics.FromImage(bitmap);
        //Set the alignment based on the coordinates   
        StringFormat stringformat = new StringFormat();
        stringformat.Alignment = StringAlignment.Far;
        stringformat.LineAlignment = StringAlignment.Far;
        StringFormat stringformat2 = new StringFormat();
        stringformat2.Alignment = StringAlignment.Center;
        stringformat2.LineAlignment = StringAlignment.Center;
        //Set the font color/format/size etc..  
        Color StringColor = System.Drawing.ColorTranslator.FromHtml("#933eea");//direct color adding
        Color StringColor2 = System.Drawing.ColorTranslator.FromHtml("#e80c88");//customise color adding
        string Str_TextOnImage = Session["randomnumber"].ToString();//Your Text On Image
        string Str_TextOnImage2 = " ";//Your Text On Image
        graphicsImage.DrawString(Str_TextOnImage, new Font("arial", 40,
        FontStyle.Regular), new SolidBrush(StringColor), new Point(268, 245),
        stringformat); Response.ContentType = "image/jpeg";
        graphicsImage.DrawString(Str_TextOnImage2, new Font("Edwardian Script ITC", 111,
        FontStyle.Bold), new SolidBrush(StringColor2), new Point(145, 255),
        stringformat2); Response.ContentType = "image/jpeg";
        bitmap.Save(Response.OutputStream, ImageFormat.Jpeg);


        string otp = Session["randomnumber"].ToString();
        string username = Session["username"].ToString();
        MailMessage mailMsg = new MailMessage();
        mailMsg.To.Add(new MailAddress("bajajrishik@gmail.com", "Rishik Bajaj"));
        mailMsg.From = new MailAddress("SSPR@automationteam.com", "SSPR");
        mailMsg.Subject = "OTP" + otp;
        string text = "otp" + otp;
        string html = @"<span><br>Hi," + username + otp;
        System.Net.Mail.Attachment attachment;
        attachment = new System.Net.Mail.Attachment("C:/Users/Bajajri/source/repos/WebSite1/WebSite1/images/blank2.JPG");
        mailMsg.Attachments.Add(attachment);
        mailMsg.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(
          text, null, MediaTypeNames.Text.Plain));
        mailMsg.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(
          html, null, MediaTypeNames.Text.Html));
        SmtpClient client = new SmtpClient("smtp.sendgrid.net", Convert.ToInt32(587));
        System.Net.NetworkCredential credentials = new System.Net.NetworkCredential(
          "azure...@azure.com", ".....");
        client.Credentials = credentials;
        client.Send(mailMsg);


        Label2.Text = "Password changed";
    }
...