我在.net下写的发送邮件程序,使用SmtpClient的Send方法。在计算机直接连到外网时,发送成功。但是公司机器(或者客户机器)上网都是用的IE代理,发送时提示“authentication failed”,发送失败! 在上网用IE代理时, 应该怎样设置邮件发送程序。。

解决方案 »

  1.   

    用JMail组件吧。.NET 1.1的那个邮件组件功能很弱。我记得好像是没有设置代理的办法的。
      

  2.   

    用JMail组件吧。.NET 1.1的那个邮件组件功能很弱。我记得好像是没有设置代理的办法的。
    =============
    支JMAIL,确实好用!
      

  3.   

    不用jmail,
     用.net自带的就可以了.
    我发段代码给你
    #region 发送邮件
    /// <summary>
    /// 不包含附件的邮件发送程序
    /// </summary>
    /// <param name="subject">邮件标题</param>
    /// <param name="body">邮件内容</param>
    /// <param name="priority">优先级别</param>
    /// <param name="format">邮件格式</param>
    /// <param name="sendto">邮件接受者</param>
    /// <param name="smtpserver">SMTP邮件服务器地址</param>
    /// <param name="username">用户名</param>
    /// <param name="userpwd">用户密码</param>
    public static void SendMail(string username,string userpwd,string smtpserver,string subject,string body,string sendto,MailPriority priority,MailFormat format)
    {
    System.Web.Mail.MailMessage mail = new System.Web.Mail.MailMessage();
    mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");
    mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername",username);
    mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword",userpwd); mail.From=username+"@"+smtpserver.Substring(smtpserver.IndexOf(".")+1);
    mail.To=sendto;
    mail.Priority=priority;
    mail.BodyFormat=format;
    mail.Subject=subject;
    mail.Body=body;
    System.Web.Mail.SmtpMail.SmtpServer=smtpserver;
    System.Web.Mail.SmtpMail.Send(mail);
    }
    #endregion
      

  4.   

    我的blog有代码,不过提醒的是注意邮件服务器设置.
      

  5.   

    public class mailobject
    {
    public string MailFrom;
    public  string MailTo;
    public  string MailSubject;
    public string MailBody;
    public string MailFormat;
    public string mformat;//对邮件进行加密 
    public string  Attachments;//附件 
    public string stmpserver;
    public string login;
    public string pwd;
    public string email_to;

    }
    public void SendMail (mailobject mail) 


    MailMessage mailObj = new MailMessage(); 

    // 设置email的'from'和'to'的地址 
    mailObj.From =mail.MailFrom;
    mailObj.To =mail.MailTo;      
    mailObj.Subject =mail.MailSubject; 
    mailObj.Body =mail.MailBody;  
    System.Web.Mail.MailEncoding enc=new MailEncoding();   
    enc=MailEncoding.Base64;    
    if(mail.Attachments!=null)
    {
    MailAttachment att=new MailAttachment(mail.Attachments,enc);
    mailObj.Attachments.Add(att) ; 
    }
    // 使用SmtpMail对象来发送邮件。   
    SmtpMail.SmtpServer=mail.stmpserver; 
    mailObj.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate","1");
    mailObj.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername",mail.login);
    //密码
    mailObj.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword",mail.pwd);
    SmtpMail.Send(mailObj); 
    }
      

  6.   

    多谢各位大侠!可能是我没有把问题描述清楚。。我是在.Net2.0下开发的,程序类似于xiangzaopao(小谢) 或cansum396(沉觉不醒) 的。但是在外网是通过IE代理来连接的话,发送邮件就不成功怎样解决上网是通过IE代理情况下的发送邮件功能
      

  7.   

    我劝你还是用JMAIL吧,不然以后的问题会有很多的
      

  8.   

    装了Jmail,但仍然解决不了“上网都是用的IE代理”的问题啊。发送不成功。