我想做一个收发电子邮件的程序,其中要用到System.Web.Mail下的MailMessage类,可是运行的时候却提示在Web下无法找到Mail名空间?更奇怪的是,我用别人现成的代码,其中也有using System.Web.Mail;这一行,运行却没问题,这是怎么回事?

解决方案 »

  1.   

    可能是你自己的没有把dll添加进来吧
      

  2.   

    请问一下怎么添加?为什么这个名空间需要添加dll?
      

  3.   

    using System;
    using System.Collections.Generic;
    using System.Net;
    using System.Net.Mail;
    using System.Text;namespace mailDaemon
    {
        class MailSender
        {
            private const string SERVER_IP = "61.181.255.80";
            private const string SENDER_EMAIL = "[email protected]";
            private const string USERNAME = "mailist";
            private const string PASSWORD = "bu2kwh1at";
            private const string SUBJECT = "高速路商机速递";
            string _server;
            string _senderEmail;
            string _username;
            string _password;
            static bool mailSent = false;        public MailSender(string server, string senderEmail, string username, string password)
            {
                _server = server;
                _senderEmail = senderEmail;
                _username = username;
                _password = password;
            }
            public MailSender():this(SERVER_IP, SENDER_EMAIL, USERNAME, PASSWORD)
            {
                
            }
            public void SendMail(string email, string content)
            {
                MailMessage msg = new MailMessage(_senderEmail, email, SUBJECT, content);
                msg.BodyEncoding = Encoding.UTF8;
                msg.Priority = MailPriority.High;
                msg.IsBodyHtml = true;
                SmtpClient client = new SmtpClient(_server);
                NetworkCredential credential = new NetworkCredential(_username, _password);
                client.UseDefaultCredentials = false;
                client.Credentials = credential;
                client.SendCompleted += new SendCompletedEventHandler(client_SendCompleted);
                client.SendAsync(msg, "Message Sent.");
                Console.WriteLine(email + "邮件发送中,按C取消发送");
                //string answer = Console.ReadLine();
                //if (answer.StartsWith("c") && mailSent == false)
                //{
                //    client.SendAsyncCancel();
                //}
                Console.WriteLine(email + "处理完成");
            }        void client_SendCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
            {
                String token = (string)e.UserState;            if (e.Cancelled)
                {
                    Console.WriteLine("[{0}] Send canceled.", token);
                }
                if (e.Error != null)
                {
                    Console.WriteLine("[{0}] {1}", token, e.Error.ToString());
                }
                else
                {
                    Console.WriteLine("Message sent.");
                }
                mailSent = true;
            }
        }
    }
    参考,参考!