单位最近新上了一套OA...在门户网站上想做一个领导信箱...
需要信箱能够实现HTML编辑和发送附件功能...
大家有没有源码,这里先谢谢大家了!!!

解决方案 »

  1.   

    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.IO;
    using System.Net;
    using System.Web.Mail;public partial class netuser_webproxy : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            MailMessage mail = new MailMessage();
            mail.From ="[email protected]";
            mail.To="[email protected]";//要发送的对象
            mail.Subject = "1111111111";//主题
            mail.Body = "2222222222222";//正文
            mail.Fields["http://schemas.microsoft.com/cdo/configuration/sendusername"] = "[email protected]";//你发送用的邮箱
            mail.Fields["http://schemas.microsoft.com/cdo/configuration/sendpassword"] = "3453453";//邮箱密码
            mail.Fields["http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"] = 1;
            mail.Fields["http://schemas.microsoft.com/cdo/configuration/languagecode"] = 0x0804;
            SmtpMail.SmtpServer = "smtp.163.com";//smtp服务器
            SmtpMail.Send(mail);
            Response.Write("success!");
           
        }
    }
      

  2.   

    2.0的话用 System.Net.Mail 命名空间实现
    MSDN 里有示例啊
      

  3.   

    .net 2.0 的 #region 使用微软类库的发送电邮函数
            /// <summary>
            /// 使用微软类库的发送电邮函数
            /// </summary>
            /// <param name="Subject"></param>
            /// <param name="Body"></param>
            /// <param name="To"></param>
            /// <returns></returns>
            public bool Send(string Subject, string Body, string To)
            {
                try
                {
                    MailMessage msg = new MailMessage();
                    msg.From = new MailAddress(ConfigurationManager.AppSettings["MailFrom"], ConfigurationManager.AppSettings["MailFromName"]);
                    msg.To.Add(new MailAddress(To, To));                msg.Subject = Subject;
                    msg.Body = Body;
                    msg.IsBodyHtml = true;
                    msg.Priority = MailPriority.High;
                    SmtpClient client = new SmtpClient(ConfigurationManager.AppSettings["MailDomain"]);
                    client.UseDefaultCredentials = false;
                    client.Credentials = new System.Net.NetworkCredential(ConfigurationManager.AppSettings["MailServerUserName"], ConfigurationManager.AppSettings["MailServerPassWord"]); //帐号密码
                    client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;                client.Send(msg);
                    return true;
                }
                catch { return false; }
            }
            #endregion
      

  4.   

    MailAttachment a = new MailAttachment(FileUpload1.PostedFile.FileName);
            mail.Attachments.Add(a);
    加附件的在aspx页面上加上一个<asp:FileUpload ID="FileUpload1" runat="server" />
    页面的编辑要去网上下编辑器
      

  5.   

    还我,我们是内网...安装了qmail服务器...我想用SMTP发信...
      

  6.   

    namespace zdm.DocLib.Business
    {
        /// <summary>
        /// Summary description for SendMailLogic
        /// </summary>
        public class SendMailLogic
        {
            /// <summary>
            /// 单例访问成员变量
            /// </summary>
            private static readonly SendMailLogic instance = new SendMailLogic();        /// <summary>
            /// 返回SendMailLogic的单个实例
            /// </summary>
            public static SendMailLogic Instance
            {
                get
                {
                    return instance;
                }
            }        /// <summary>
            /// 构造函数
            /// </summary>
            public SendMailLogic()
            {
                //
                // TODO: Add constructor logic here
                //
            }        /// <summary>
            /// 发送邮件
            /// </summary>
            /// <param name="request"></param>
            /// <returns></returns>
            public SendMailResponse SendMail( SendMailRequest request )
            {
                try
                {
                    MailMessage myMail = new MailMessage();
                    myMail.From = new MailAddress( request.From );
                    PaserMailAddress( request.To, myMail.To );
                    PaserMailAddress( request.CC, myMail.CC );
                    PaserMailAddress( request.Bcc, myMail.Bcc );
                    myMail.Subject = request.Subject;
                    myMail.Body = request.Body;                if (request.Attachments != null)
                    {
                        for (int i = 0; i < request.Attachments.Length; i++)
                        {
                            System.Net.Mail.Attachment mailAttach = new System.Net.Mail.Attachment(ByteArrayToStream(request.Attachments[i].FileData), request.Attachments[i].FileName);                        myMail.Attachments.Add( mailAttach );
                        }
                    }                if (string.IsNullOrEmpty(ConfigurationManager.AppSettings[BizConsts.APPKEY_SMTP_SERVER]))
                    {
                        throw new ApplicationException( "SMTP服务器未设置" );
                    }                //Smtp Server
                    SmtpClient mailClient = new SmtpClient(ConfigurationManager.AppSettings[BizConsts.APPKEY_SMTP_SERVER]);                if (!string.IsNullOrEmpty(ConfigurationManager.AppSettings[BizConsts.APPKEY_SMTP_SERVERPORT]))
                    {
                        //端口号
                        try
                        {
                            mailClient.Port = Int32.Parse(ConfigurationManager.AppSettings[BizConsts.APPKEY_SMTP_SERVERPORT]);
                        }
                        catch
                        {
                            throw new ApplicationException("SMTP服务器端口设置错误,端口必须设置为数值型");
                        }
                    }                if ( CheckMailUserConfig() )
                    {
                        //需要指定帐户信息
                        mailClient.Credentials = new System.Net.NetworkCredential(ConfigurationManager.AppSettings[BizConsts.APPKEY_MAIL_USER], ConfigurationManager.AppSettings[BizConsts.APPKEY_MAIL_USERPW]);                    mailClient.DeliveryMethod = SmtpDeliveryMethod.Network;
                    }
                   
                    mailClient.Send(myMail);                SendMailResponse response = new SendMailResponse();                response.ErrorCode = BizConsts.ERRCODE_SUCCESSFUL.ToString();
                    response.ErrorMsg = string.Empty;                return response;
                }
                catch (SmtpFailedRecipientsException e)
                {
                    Trace.Write("无法发送邮件到所有邮件地址:" + e.Message);                SendMailResponse response = new SendMailResponse();                response.ErrorCode = BizConsts.ERRCODE_FAILED.ToString();
                    response.ErrorMsg = e.Message;                return response;
                }
                catch (SmtpFailedRecipientException e)
                {
                    Trace.Write("无法发送邮件到个别邮件地址:" + e.Message);                SendMailResponse response = new SendMailResponse();                response.ErrorCode = BizConsts.ERRCODE_FAILED.ToString();
                    response.ErrorMsg = e.Message;                return response;
                }
                catch (SmtpException e)
                {
                    Trace.Write("发送邮件时的Smtp异常:" + e.Message);                SendMailResponse response = new SendMailResponse();                response.ErrorCode = BizConsts.ERRCODE_FAILED.ToString();
                    response.ErrorMsg = e.Message;                return response;
                }
                catch (Exception e)
                {
                    Trace.Write("发送邮件时的异常:" + e.Message);                throw new ApplicationException( "发送邮件时的异常" , e );
                } 
            }        /// <summary>
            /// 解析分解邮件地址
            /// </summary>
            /// <returns></returns>
            private void PaserMailAddress( string mailAddress, MailAddressCollection mailCollection  )
            {
                if (string.IsNullOrEmpty(mailAddress) )
                {
                    return;
                }            char[] separator = new char[2] {',',';' };
                string[] addressArray = mailAddress.Split(separator);            foreach (string address in addressArray )
                {
                    if(address.Trim() == "")
                    {
                        continue;
                    }                mailCollection.Add(new MailAddress(address ));
                }
            }        /// <summary>
            /// 检查是否配置了邮件帐户
            /// </summary>
            /// <returns></returns>
            private bool CheckMailUserConfig()
            {
                if (!string.IsNullOrEmpty(ConfigurationManager.AppSettings[BizConsts.APPKEY_MAIL_USER]))
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }        /// <summary>
            /// 字节数组转换为流
            /// </summary>
            /// <param name="byteArray"></param>
            /// <returns></returns>
            private Stream ByteArrayToStream( byte[] byteArray )
            {
                MemoryStream mStream = new MemoryStream(byteArray);            return mStream;
            }
        }}
      

  7.   

    using System;
    using System.Web;namespace EMailCommon
    {
    /// <summary>
    /// Summary description for CDOSendMail.
    /// </summary>
    public class CDOSendMail
    {
    public CDOSendMail()
    {
    //
    // TODO: Add constructor logic here
    //
    }

    public static void sendMail(string mailFrom, string mailTo, string mailSubject, string mailBody)
    {
    try
    {    
    CDO.Message oMsg = new CDO.Message();
        
    oMsg.From = mailFrom;       //"[email protected]";
    oMsg.To = mailTo;           //"[email protected]";
    oMsg.Subject = mailSubject; // "MailTest";
         oMsg.HTMLBody = mailBody;   //"<html><body>Test</body></html>"; CDO.IConfiguration iConfg = oMsg.Configuration;
    ADODB.Fields oFields = iConfg.Fields;
              
    oFields["http://schemas.microsoft.com/cdo/configuration/sendusing"].Value=2;
    oFields["http://schemas.microsoft.com/cdo/configuration/sendemailaddress"].Value= mailFrom; //"[email protected]"; //sender mail
    oFields["http://schemas.microsoft.com/cdo/configuration/smtpaccountname"].Value= mailTo; //"[email protected]"; //email account
    //oFields["http://schemas.microsoft.com/cdo/configuration/sendusername"].Value="[email protected]";
    oFields["http://schemas.microsoft.com/cdo/configuration/sendusername"].Value = System.Configuration.ConfigurationSettings.AppSettings["sendusername"];
    //oFields["http://schemas.microsoft.com/cdo/configuration/sendpassword"].Value="33036";
    oFields["http://schemas.microsoft.com/cdo/configuration/sendpassword"].Value = System.Configuration.ConfigurationSettings.AppSettings["sendpassword"];
    oFields["http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"].Value=1;
    //value=0 代表Anonymous验证方式(不需要验证)
    //value=1 代表Basic验证方式(使用basic (clear-text) authentication. 
    //The configuration sendusername/sendpassword or postusername/postpassword fields are used to specify credentials.)
    //Value=2 代表NTLM验证方式(Secure Password Authentication in Microsoft Outlook Express)
    oFields["http://schemas.microsoft.com/cdo/configuration/languagecode"].Value=0x0804;
    //oFields["http://schemas.microsoft.com/cdo/configuration/smtpserver"].Value= "smtp.163.com";
    oFields["http://schemas.microsoft.com/cdo/configuration/smtpserver"].Value= System.Configuration.ConfigurationSettings.AppSettings["smtpserver"];
    //"smtp.21cn.com"; oFields.Update();
    oMsg.BodyPart.Charset="ISO-8859-1";
    oMsg.HTMLBodyPart.Charset="ISO-8859-1";  oMsg.Send();
    oMsg = null;
    }   
    catch (Exception e)
    {
    throw e;
    }
    }
    }
    }
      

  8.   

    好像有一个叫fckeditor
    我没用过,就听说过
    据说挺不错的
      

  9.   

    你把smtp的server设置成自己的server不就可以了么
      

  10.   

    freetextbox使用比较简单   也很方便
      

  11.   

    但Exchange server中没有设SMTP服务怎么办呢