我从网上搜索资料照样做的,为什么不可以呢。
protected void Page_Load(object sender, EventArgs e)
    {
        SendWebMailAndAttach("smtp.126.com"); 
    }
    public static void SendWebMailAndAttach(string server)
    {
        string file = "E:\\33.txt";
        System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage("[email protected]", "[email protected]", "text message for you.", "Test Title");
        System.Net.Mail.Attachment data = new System.Net.Mail.Attachment(file, System.Net.Mime.MediaTypeNames.Application.Octet);
        System.Net.Mime.ContentDisposition disposition = data.ContentDisposition;
        disposition.CreationDate = System.IO.File.GetCreationTime(file);
        disposition.ModificationDate = System.IO.File.GetLastWriteTime(file);
        disposition.ReadDate = System.IO.File.GetLastAccessTime(file);
        message.Attachments.Add(data);
        System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient(server);
        client.UseDefaultCredentials = false;
        client.Send(message);
        data.Dispose();
报下面的错.不允许使用邮箱名称。 服务器响应为: Requested action not taken: Local user only,smtp3,wKgAoELASClAASlEzl3hAw==.6905S2

解决方案 »

  1.   

    public static bool SendEmail(string from, string to, string cc, string subject, string body, MailFormat format)
    {
    try
    {
    MailMessage email = new MailMessage();
    email.From = from;
    email.To = to;
    email.Cc = cc;
    email.Subject = subject;
    email.Body = body;
    email.BodyFormat = format;

    email.Priority = MailPriority.High;
    email.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");//basic authentication
    email.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "username");
    email.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "password");
    SmtpMail.SmtpServer = "smtp.126.com";//SMTPServer
    SmtpMail.Send(email);
    return true;
    }
    catch (Exception err)
    {
    string strErr = err.Message;
    return false;
    }
    }
      

  2.   


    在asp.net2.0下这个可以发#region 发邮件
        /// <param name="strSmtpServer">SMTP服务器</param>
        /// <param name="strFrom">发信人地址</param>
        /// <param name="strFromPass">发信人密码</param>
        /// <param name="strto">收信人地址</param>
        /// <param name="strSubject">主题</param>
        /// <param name="strBody">内容</param>
        /// <returns>void</returns>
        private void SendSMTPEMail(string strSmtpServer, string strFrom, string strFromPass, string strto, string strSubject, string strBody)
        {
            try
            {
                System.Net.Mail.SmtpClient client = new SmtpClient(strSmtpServer);
                client.UseDefaultCredentials = false;
                client.Credentials = new System.Net.NetworkCredential(strFrom, strFromPass);
                client.DeliveryMethod = SmtpDeliveryMethod.Network;            System.Net.Mail.MailMessage message = new MailMessage(strFrom, strto, strSubject, strBody);
                message.BodyEncoding = System.Text.Encoding.GetEncoding("GB2312");
                message.IsBodyHtml = true;            client.Send(message);
               
            }catch(Exception)
            {
                
            }
        }
        #endregion