2010-08-30 7 views
0

J'utilise Visual Studio 2008 Express avec C#. J'ai essayé d'obtenir une routine d'email pour travailler dans le code-behind sur une page aspx.Envoyer un courrier électronique avec Visual Studio 2008 en utilisant C#

Tous les exemples MSDN, même ceux indiqués pour .Net 3.5, ne sont pas compilés. La classe MailMessage a apparemment changé plusieurs fois. Voici le code qui compile, mais cette ligne de code, SmtpMail.Send (msg), a un message d'erreur qui est vague:

"La meilleure méthode surchargée pour 'System.Net.Mail.SmtpClient.Send (System.Net.Mail.MailMessage) » a des arguements invalides.

quelqu'un peut-il voir ce que les arguements invalides pourrait être? C'est tout ce qui est d'empêcher ce de travailler.

using System.Net; 
using System.Net.Mail; 

MailMessage msg = new MailMessage(); 

msg.ToAddress = new MailAddress("[email protected]"); 
msg.FromAddress = ("[email protected]"); 
msg.CCAddress = ("[email protected]"); 

msg.EmailMessage = "Order message test"; 
msg.EmailSubject = "Order Confirmation"; 
msg.MailEncoding = "html"; 
msg.MailPriority = MailPriority.Normal.ToString(); 

SmtpClient SmtpMail = new SmtpClient(); 

SmtpMail.Host = "smtpout.secureserver.net"; 
SmtpMail.Port = 25; 

try 
{ 
    SmtpMail.Send(msg); // This is where the error occurs. 
} 
catch (Exception ex) 
{ 
    // Incomplete here 
} 
+2

Rien sur ce code est exact. La classe MailMessage ne possède aucune des propriétés que vous avez écrites dans votre code. – Sruly

Répondre

0

Il ressemble vous utilisez un wrapper personnalisé pour MailMessage Aucune de ces propriétés n'est membre des classes .NET (f ou n'importe quelle version que je peux trouver).

Pour 3.5, vous pouvez utiliser:

msg.To.Add(new MailAddress("[email protected]")); 
msg.From.Add(new MailAddress("[email protected]")); 
msg.CC.Add(new MailAddress("[email protected]")); 

msg.Body = "Order message test"; 
msg.Subject = "Order Confirmation"; 
msg.BodyEncoding = Encoding.Default; 
msg.Priority = MailPriority.Normal; 
0

On dirait que vous essayez de faire quelque chose assez compliqué; J'essaierais d'abord avec un exemple encore plus simple et je progresserais. Le site Web SystemNetMail.com a beaucoup de ressources que vous pourriez trouver utile. Ceci est their simple example:

//create the mail message 
MailMessage mail = new MailMessage(); 

//set the addresses 
mail.From = new MailAddress("[email protected]"); 
mail.To.Add("[email protected]"); 

//set the content 
mail.Subject = "This is an email"; 
mail.Body = "this is a sample body"; 

//send the message 
SmtpClient smtp = new SmtpClient("127.0.0.1"); 
smtp.Send(mail); 
2

L'exemple ci-dessous utilise framework C# .net 3.0.

Voici les bibliothèques supplémentaires que j'utilise:

 using System.Net.Mail; //.MailMessage 
     using Microsoft.VisualBasic; //imports control characters for string formatting 

Voici ma fonction à envoyer:

 String strPassed = ""; 
     System.Web.Mail.MailMessage 
     String strEmailTo = "[email protected]"; 
     String strEmailFrom = "[email protected]"; 
     String strEmailBCC = ""; 
     String strEmailSubject; 
     String strEmailBody = ""; 

     strEmailSubject = "Attention User - Request Email"; 
     strEmailBody = "You requested your password for xyz site. <br><br>" + 
      " <b> Account Information </b> ...<br> "; 
     strEmailBody = strMessage; 
     strEmailTo = strEmail; 

     System.Net.Mail.MailMessage objMessage = new System.Net.Mail.MailMessage(strEmailFrom, strEmailTo); 
     objMessage.IsBodyHtml = true; 
     objMessage.Subject = strEmailSubject; 
     objMessage.Body = strEmailBody; //emailbody; 

     MailAddressCollection objAddress = new MailAddressCollection(); 
     System.Net.Mail.SmtpClient objClientPath = new System.Net.Mail.SmtpClient(); 
     SmtpClient smtp = new SmtpClient(); 
     try 
     { 
      strPassed = "passed:emailed"; 
      objClientPath.Host = "mailhost.xyz.org"; 
      objClientPath.Send(objMessage); 
     } 
     catch (System.Exception err) 
     { 
      strPassed = "failed:"+ err.ToString();//''if an error 
     } 
     return strPassed; 
Questions connexes