Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Inviare grafico generato da .net dentro email html

    Ciao a tutti.
    Ho una pagina aspx che mi genera un grafico, ora il risultato dovrei inserirlo come corpo dentro una email html che poi schedulerò.

    Questa cosa senza grafico la sto già facendo ma con il classic asp inserendo i cicli recordset dentro il codice asp preparato con i tag html etc ectcorpo html della email etc etc..

    Ora anche se ho letto qualche post in merito non ho ben capito quale sia la soluzione diciamo più semplice.

    Chiedo qualche suggerimento.
    Grazie

    Ciao

  2. #2
    io farei così:
    salverei il grafico come immagine, includerei l'immagine come attach nella mail per poi visualizzarla nel codice HTML.

    Ecco il codice di esempio:
    codice:
            /////////////////////////////////////////////////////////////////////
            // Build a mail object.
            // 
    
            MailMessage mail = new MailMessage();
            mail.To.Add("anyreceiver@anydomain.com");
            mail.From = new MailAddress("anyaddress@anydomain.com");
            mail.Subject = "Test email - CSSMTPSendEmail";
            mail.Body = "Welcome";
            mail.IsBodyHtml = true;
            
            // Attachments
            string attachedFile = "<attached file path>";
            mail.Attachments.Add(new Attachment(attachedFile));
    
            // Embedded image in the message body
            mail.Body += "
    <img alt=\"\" src=\"cid:image1\">";
    
            string imgFile = "<image file path>";
            AlternateView htmlView = AlternateView.CreateAlternateViewFromString(
                mail.Body, null, "text/html");
            LinkedResource imgLink = new LinkedResource(imgFile, "image/jpg");
            imgLink.ContentId = "image1";
            imgLink.TransferEncoding = System.Net.Mime.TransferEncoding.Base64;
            htmlView.LinkedResources.Add(imgLink);
            mail.AlternateViews.Add(htmlView);
    
    
            /////////////////////////////////////////////////////////////////////
            // Configure the SMTP client and send the email.
            // 
    
            // Configure the SMTP client
            SmtpClient smtp = new SmtpClient();
            smtp.Host = "smtp.live.com";
            smtp.Credentials = new NetworkCredential(
                "myaccount@live.com", "mypassword");
            smtp.EnableSsl = true;
    
            // Send the email
            smtp.Send(mail);

  3. #3

    ciao

    Ciao grazie della risposta.
    Si potrebbe essere una soluzione ma è possibile automatizzare il salvataggio del grafico in una directory tramite uno script in vb.

    Lancio lo script all'onload per salvarmi il grafico e poi allego il tutto come da tuo esempio ??

    Grazie

    Ciao

  4. #4
    certo che si può fare. Dipende anche però da come la tua pagina genera il grafico.
    Usi un controllo particolare?

  5. #5
    Ciao no non credo fonte dati Access
    un Sqldatasource e un controllo asp:chart ( molto semplice )

  6. #6
    ok, quindi usi il controllo asp:chart, che presumo sia il controllo chart facente parte della libreria System.Web.UI.DataVisualization.Charting

    questo controllo (se non sbaglio) prevede la generazione del grafico come immagine, che quindi puoi salvare nella cartella che vuoi.

    http://msdn.microsoft.com/en-us/library/dd488428.aspx
    http://www.4guysfromrolla.com/articles/093009-1.aspx

    nel secondo link c'è proprio un paragrafo "Emailing A Chart Image".
    ciao buon lavoro

  7. #7
    Ciao grazie della tua risposta.
    Con il codice sotto riesco a salvare il grafico e poi metterlo dentro una email però attualmento sto usando i percorsi assoluti.
    Inoltre il file viene ogni volta sovrascritto e quindi non va bene.

    Avrei bisogno di salvare il file ogni volta con un nome diverso ( magari usando la data ) in modo che quando spedisco l'email il recupero l'immagine in base alla data.
    Come posso fare?
    Grazie

    Ciao

    ------------------------------------
    Private Sub SalvaGrafico()

    Dim oGrafico As Chart = Me.Chart3

    'Dim oFilePath As String = Server.MapPath("~/Grafico.png")
    With oGrafico
    .Width = 500
    .Height = 400
    .SaveImage(oFilePath, ChartImageFormat.Png)
    End With

    Call invioemail()
    End Sub
    ----------------------------------------------

  8. #8
    quando salvi il grafico come immagine, puoi generare il nome utlizzando appunto la data, o anche altri dati per rendere unico il file, ad esempio il nome del grafico, i dati del grafico, un titolo mail ecc.
    esempio:
    codice:
    Dim sNomeFile as String = 
        string.Format("~/Grafico_{0}_{1}.png",
        DateTime.Now.ToShortDateString.Replace("/","-"),
        <altroDatoIdentificativo>)
    Dim oFilePath As String = Server.MapPath(sNomeFile)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.