IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

envoi par mail d'une page aspx


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 35
    Par défaut envoi par mail d'une page aspx
    Bonjour à tous,

    Tout d'abord je vais vous exposer la situation. J'ai une page accueil.aspx.vb où je lis un fichier pour mettre à jour une table de ma BDD lorsque l'utilisateur clique sur un bouton pour importer ce fichier.

    Lors du click sur ce bouton, je souhaite envoyer une page mail.aspx par mail qui lit des informations dans ma BDD mis à jour et bien sûr met en forme la page.

    En entrant un peu plus dans les détails, lors de la lecture du fichier importé dans la page accueil.aspx.vb, une clé est lue, et elle est passée en variable de session à la page mail.aspx pour que cette dernière lit les informations en fonction de cette clé. Actuellement, deux fonctions sont rattachées à la page mail.aspx.vb. Une fonction qui initialise toutes les variables et une autre qui appelle cette fonction au chargement de la page.

    Mon problème est que je ne sais pas comment faire pour envoyer l'intégralité d'une page aspx par mail.

    Pourriez-vous m'orienter sur la méthode à employer, me donner un exemple ou tout autre chose qui pourrait m'être utile, svp ?

    Merci d'avance.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 90
    Par défaut
    Bonjour,

    Pour envoyer un mail en Asp.net :
    http://webman.developpez.com/article.../email/csharp/.

    Dans ton cas tu peut te baser sur le lien. Et pour envoyer l'intégralité de ta page il faut récupérer le contenu de ta page dans une chaine de caractère comme suit :
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Dim uri as New Uri("http://www.microsoft.com/default.aspx");If(uri.Scheme == uri.UriSchemeHttp) Then
    Dim request as HttpWebRequest = HttpWebRequest.Create(uri)
    request.Method = WebRequestMethods.Http.Get
    Dim response As HttpWebResponse = request.GetResponse()
    Dim reader As New StreamReader(response.GetResponseStream())
    Dim tmp As String = reader.ReadToEnd()
    response.Close()
    End If
    Il ne te reste qu'a recuperer la chaine de réponse "tmp" et de faire :
    Voilà le tour est joué.

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 35
    Par défaut
    Merci bien pour ta réponse.

    je venais de faire quelque chose de similaire. J'ai testé ta solution, ça fonctionne très bien aussi.

    Le souci maintenant, c'est que mes variables dans la page mail.aspx.vb ne se chargent pas car elles sont mises dans l'évènement page_load.

    Sauriez-vous quel évènement dois-je utiliser pour que cela fonctionne ?

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 90
    Par défaut
    Si tu passe correctement tes variables en session ou dans l'url etc .... ca doit fonctionner

    Par contre juste comme ça c'est un peu difficile de voir ou ca bloque ....

    Si tu montre un peu de code ca peut résoudre le souci

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 35
    Par défaut
    Au temps pour moi, j'avais fait une petite erreur dans mes tests

    Donc cela fonctionne bien.

    Mais par contre, un problème subsiste. Dans ma page aspx, j'ai une image :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <asp:Image ID="img_debut" runat="server" ImageUrl="/img/debut.jpg"/>
    Or je voudrais qu'elle apparaisse dans le mail mais pour l'instant, ce n'est pas le cas.

    j'ai joint l'image comme ceci à l'email.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     mail.Attachments.Add(New Attachment(Server.MapPath("img") & "\" & "debut.jpg"))
    Quel chemin dois-je mettre dans la balise image ou comment dois-je m'y prendre svp ?

    Merci d'avance

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 90
    Par défaut
    MailAttachment sert à mettre des pièces jointes pas à mettre l'image à l'intérieur du mail

    Voilà comment procéder :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    using System.Net.Mail;
     
    string htmlBody = "<html><body><h1>Picture</h1><br><img src=\"cid:Pic1\"></body></html>";
    AlternateView avHtml = AlternateView.CreateAlternateViewFromString
        (htmlBody, null, MediaTypeNames.Text.Html);
     
    // Create a LinkedResource object for each embedded image
    LinkedResource pic1 = new LinkedResource("pic.jpg", MediaTypeNames.Image.Jpeg);
    pic1.ContentId = "Pic1";
    avHtml.LinkedResources.Add(pic1);
     
     
    // Add the alternate views instead of using MailMessage.Body
    MailMessage m = new MailMessage();
    m.AlternateViews.Add(avHtml);
     
    // Address and send the message
    m.From = new MailAddress("rizwan@dotnetplayer.com", "Rizwan Qureshi");
    m.To.Add(new MailAddress("shayan@dotnetplayer.com", "Shayan Qureshi"));
    m.Subject = "A picture using alternate views";
    SmtpClient client = new SmtpClient("smtp.dotnetplayer.com");
    client.Send(m);
    Bon courage

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Envoi de mail d'une page aspx
    Par Erebas dans le forum ASP.NET
    Réponses: 6
    Dernier message: 14/04/2011, 15h44
  2. Envoi par mail d'une page html (dans corps de texte)
    Par Lili120 dans le forum Général Conception Web
    Réponses: 6
    Dernier message: 04/02/2011, 09h08
  3. Envoi par mail de la page html courante
    Par turtly dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 09/04/2009, 10h34
  4. Envoie de mail dans une page jsp
    Par ze veritable farf dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 29/06/2006, 11h34
  5. Envoi par mail d'une page asp existante
    Par killerhertz dans le forum ASP
    Réponses: 10
    Dernier message: 22/06/2006, 13h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo