2011-11-01 3 views
2

Parfois, j'ai besoin de lancer quelque chose sur mon site Web. Par exemple, en ce moment je veux envoyer un mail du compte de support à quelqu'un.Exécution de scripts simples pour un site Web asp.net

Pour ce faire, je prévois de créer une page Web temporaire, puis mettre un peu de code en cas page_load, puis supprimez la page Web:

protected void Page_Load(object sender, EventArgs e) 
{ 
    String notificationMessage = "Email body."; 
    Mailer.SendMail("[email protected]", "Email header", notificationMessage); 
} 

C'est un peu bête. Cependant, il est assez pratique pour accéder aux éléments que j'ai définis dans web.config, comme les serveurs sql et les modules de mailing.

Y a-t-il une meilleure façon de procéder?

+0

La seule autre façon que je pourrais voir faire ceci est de stocker des valeurs dans une base de données et de les charger dynamiquement. – JonH

+2

peut-être quelque chose avec un GenericHandler? Au moins, vous ne portez pas les frais généraux de la page. – Bazzz

+0

Je suis d'accord avec @Bazzz, un générique HttpHandler serait une bonne approche. – neontapir

Répondre

1

Comme @Bazzz et @neontapir ont déclaré, j'utiliser un fichier gestionnaire générique pour cela avec le code:

public class Handler : IHttpHandler 
{ 
    public void ProcessRequest(HttpContext context) 
    { 
      String notificationMessage = "Email body."; 
      Mailer.SendMail("[email protected]", "Email header", notificationMessage); 
    } 
} 

De cette façon, vous n'êtes pas rendu tout HTML, ce qui rendra le processus plus rapide, et vous Le fichier .ashx ne sera comparé qu'à un .aspx et un .aspx.cs

À long terme, si vous vous retrouvez à faire des offs comme ceci, vous devriez envisager de l'intégrer dans l'application.

1

Si vous utilisez la classe System.Net.Mail.Mailmessage (plus à http://www.systemnetmail.com/faq/2.1.aspx), vous pouvez définir le IsBodyHtml à true, et fournir le HTML directement au message, sans avoir à vous soucier de créer/supprimer une page Web ... Vous pouvez ' t poster une page ASP.NET par e-mail et s'attendre à interagir avec elle.

Qu'essayez-vous exactement de faire?