名称Smtp在当前上下文中不存在

时间:2011-03-17 13:54:47

标签: c# smtp system.net.mail

由于某种原因,我收到的Smtp在当前上下文中不存在,即使用名称空间'使用System.Net.Mail;'。我不知道为什么并尝试过使用System.Web.mail;。希望你能帮忙。

        MailMessage mail = new MailMessage();
                SmtpClient SmtpMail = new SmtpClient();

                SmtpMail.Credentials = new System.Net.NetworkCredential("username", "password");
                mail.From = "";  //Error    1   Cannot implicitly convert type 'string' to 'System.Net.Mail.MailAddress'    

                mail.To = "";   // Error    2   Property or indexer 'System.Net.Mail.MailMessage.To' cannot be assigned to -- it is read only   
                                // Error    3   Cannot implicitly convert type 'string' to 'System.Net.Mail.MailAddressCollection'  


                mail.Subject = "password";         
                mail.Body = "test";           
                SmtpMail.SmtpServer = "smtp.brad.ac.uk"; // Error   4   'System.Net.Mail.SmtpClient' does not contain a definition for 'SmtpServer' and no extension method 'SmtpServer' accepting a first argument of type 'System.Net.Mail.SmtpClient' could be found (are you missing a using directive or an assembly reference?)   

                SmtpMail.Send(mail);

4 个答案:

答案 0 :(得分:3)

SmtpMail在较新的框架中被标记为已过时。 SmtpClient是推荐的类。也许这会导致你的问题?

编辑:您可以指向项目中的较低框架,也可以换掉该类。任何一个应该为你工作。 (http://msdn.microsoft.com/en-us/library/system.web.mail.smtpmail.aspx)

编辑:此类最后一次在.Net 1.1中得到支持它将在每个框架中发出编译器警告。

答案 1 :(得分:0)

听起来您在项目中缺少对System.Net.Mail的引用。将其添加为参考,看看是否能让您更进一步。

编辑:修复了对System.Net.Mail.SmtpClient的引用。

答案 2 :(得分:0)

在项目中添加 System.Web 的引用,以及using System.Web.Mail,看看是否有帮助。我已经添加了这个作为对qor72答案的评论,但我还没有代表。

答案 3 :(得分:0)

对于错误1,2和3,实例化MailMessage,如下所示:MailMessage mail = new MailMessage(“发件人字符串”,“接受者字符串”);

对于错误4,请尝试使用Host属性或ServicePoint。