2010-08-07 10 views
2

Je travaille sur une application héritée qui a cette logique dans son code que je ne peux malheureusement pas modifier. J'ai les paramètres appropriés dans le web.config et je me demandais si je liste le bon serveur SMTP serait les paramètres web.config prendre soin des informations d'identification?ASP.NET SMTP + web.config

Si ce n'est pas quelles options ai-je pour envoyer un email avec ce code?

string str13 = ""; 
    str13 = StringType.FromObject(HttpContext.Current.Application["MailServer"]); 
    if (str13.Length > 2) 
    { 
     SmtpMail.SmtpServer = str13; 
    } 
    else 
    { 
     SmtpMail.SmtpServer = "localhost"; 
    } 
    SmtpMail.Send(message); 
+0

'str13' ... aïe . – wsanville

+0

J'ai utilisé Reflector pour regarder la source. – Todd

+1

Je chercherais plutôt dans System.Net.Mail. – Nate

Répondre

1

System.Web.Mail ne présente aucun paramètre permettant de spécifier des informations d'identification, malheureusement. Il est possible d'envoyer des emails authentifiés, cependant, parce que System.Web.Mail est construit sur CDOSYS. Here's a KB article which describes how to do it, mais vous avez essentiellement de modifier certaines propriétés du message lui-même:

var msg = new MailMessage(); 
if (userName.Length > 0) 
{ 
    string ns = "http://schemas.microsoft.com/cdo/configuration/"; 
    msg.Fields.Add(ns + "smtpserver", smtpServer); 
    msg.Fields.Add(ns + "smtpserverport", 25) ; 
    msg.Fields.Add(ns + "sendusing", cdoSendUsingPort) ; 
    msg.Fields.Add(ns + "smtpauthenticate", cdoBasic); 
    msg.Fields.Add(ns + "sendusername", userName); 
    msg.Fields.Add(ns + "sendpassword", password); 
} 
msg.To = "[email protected]"; 
msg.From = "[email protected]"; 
msg.Subject = "Subject"; 
msg.Body = "Message"; 
SmtpMail.Send(msg); 

Que qui fonctionne pour votre situation ou non, je ne suis pas sûr ....

+0

peut-il utiliser les paramètres SMTP du web.config? Je ne sais pas quand les vlaues seront ramassés et quand ils pourraient être ignorés. – Todd

+0

Non, 'System.Web.Mail' ne supporte pas les paramètres du fichier web.config (seulement' System.Net.Mail'). Les paramètres que j'ai donnés doivent être spécifiés sur * chaque * message. –

+0

C'est la réponse que je cherchais. Shoot..ok ... le temps d'essayer de déterrer le code source. Merci pour l'info! – Todd