/// <summary>
/// 使用指定的smtp服务器发送email
/// </summary>
/// <param name="MailTo">接收Email地址</param>
/// <param name="MailFrom">发送翻Email地址</param>
/// <param name="MailSubject">邮件主题</param>
/// <param name="MailBody">邮件内容</param>
/// <param name="isHtml">是否为Html格式</param>
/// <param name="SmtpServerAddress">smtp服务器</param>
/// <param name="SmtpUserName">smtp服务器上的用户名</param>
/// <param name="SmtpUserPassWord">smtp服务器上的密码</param>
/// <returns>布尔值表示发送成功与否</returns>
public static bool SendEmail(string MailTo,string MailFrom,string MailSubject,string MailBody,bool isHtml,string SmtpServerAddress,string SmtpUserName,string SmtpUserPassWord)
{
bool isOk =false;
MailMessage myMail = new MailMessage();
myMail.BodyEncoding = Encoding.GetEncoding("GB2312");
myMail.BodyFormat = (isHtml) ? MailFormat.Html:MailFormat.Text;
myMail.To = MailTo;
myMail.From = MailFrom;
myMail.Subject = MailSubject;
myMail.Body = MailBody;
myMail.Priority = MailPriority.High;
if(SmtpUserName != null && SmtpUserPassWord != null)
{
myMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");
myMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", SmtpUserName); //Smtp Server 上的用户名
myMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", SmtpUserPassWord); //Smtp Server 上的密码
}
SmtpMail.SmtpServer = SmtpServerAddress;//Smtp Server 地址
try
{
SmtpMail.Send(myMail);
isOk = true;
}
catch
{
}
return isOk;

}

解决方案 »

  1.   

    这个方法不好用啊。。winform 调不到 MailMessage 这个对象啊。。
      

  2.   

    去这儿看看吧,开源的mail服务器.
    http://www.lumisoft.ee/lsWWW/ENG/Products/Mail_Server/mail_index_eng.aspx?type=download
      

  3.   

    发送邮件是利用SMTP协议,接受邮件使用POP3协议
    由于SMTP封装在System.web.Mail中,winForm很难调用,所以只能写socket程序来实现
      

  4.   

    用socket也不是问题。。主要是身份认证的时候,我应该调用那个方法来做呢?我这里倒是有一个不用身份认证的例子。。在http://www.codeproject.com/csharp/sendmailcsharp.asp可是像现在基本没有匿名服务器了。。
      

  5.   

    有本书叫《c#.net 网络核心编程》
    里面有SMTP,POP3的例子。
      

  6.   

    SmtpMail 只能在asp.net用。/ winform的不可以。。
      

  7.   

    使用System.Web.Mail通过需验证的邮件服务器发送邮件
    http://blog.csdn.net/zhzuo/archive/2004/07/12/39459.aspx
      

  8.   

    System.Web.Mail只能在asp.net用。/ winform的不可以。。
      

  9.   

    到http://www.codeproject.com/去找有很多。
    《c#.net 网络核心编程》此书极烂,代码没有价值,不用看。
      

  10.   

    用jMail吧
    代码如下:
    jmail.MessageClass myMail=new jmail.MessageClass();

    myMail.Charset="GB2312";
    myMail.Silent=true;
    myMail.Priority=3;
    myMail.MailServerUserName="[email protected]";
    myMail.MailServerPassWord="*****";
    myMail.From="[email protected]";

    myMail.AddRecipient("[email protected]","testzhang","");
    myMail.Subject="this is a test";
    myMail.Body="this is a test ,author is zhangzhenliang";
        
    myMail.Send("smtp.126.com",false);
      

  11.   

    winform当然可以,只要把system.web组件导入就可以了