首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 跪求:ASP.NET 发送邮件(带附件)的共通方法 [已结帖,结帖人:yhf831011]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • yhf831011
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 结帖率:
    发表于:2008-11-17 09:43:48 楼主
    跪求:

    在ASP.NET中,系统自动发送邮件的共通方法,要求带附件一起发送!

    目前已有方法不能带附件,代码如下,请参考:

    //SendMailWithMailinfo方法

    public bool SendMailWithMailinfo(string mailTo, string mailCC, string MailSubject, string MailBody)
            {
                string from = string.Empty;
                string host = string.Empty;
                string user = string.Empty;
                string hostPort = string.Empty;
                string password = string.Empty;

                from = ConfigurationManager.AppSettings["MailSenderMail"].ToString();
                host = ConfigurationManager.AppSettings["MailHost"].ToString();
                user = ConfigurationManager.AppSettings["MailHostUser"].ToString();//userName
                hostPort = ConfigurationManager.AppSettings["MailHostPort"].ToString();//port
                password = ConfigurationManager.AppSettings["MailHostPassword"].ToString();//password
               
                Mail mail = new Mail();
                return mail.DoSend(user, password, hostPort, from, mailTo, mailCC, "", MailSubject, MailBody, false, host);
            }

    //DoSend方法

    private Boolean DoSend(string userName, string password, string port, string from, string to, string cc, string bcc, string subject, string body, bool isBodyHtml, string smtpHost)
            {
                string[] toAddress = to.Split(',');
                string[] ccAddress = cc.Split(',');
                string[] bccAddress = bcc.Split(',');
                bool isSuccess = true;

                try
                {
                    MailMessage msg = new MailMessage();

                    msg.From = new MailAddress(from);
                    foreach (string t in toAddress)
                    {
                        if (string.IsNullOrEmpty(t))
                            return false;
                        msg.To.Add(new MailAddress(t.Trim()));
                    }
                    foreach (string t in ccAddress)
                    {
                        if (string.IsNullOrEmpty(t))
                            continue;
                        msg.To.Add(new MailAddress(t.Trim()));
                    }
                    foreach (string t in bccAddress)
                    {
                        if (string.IsNullOrEmpty(t))
                            continue;
                        msg.To.Add(new MailAddress(t.Trim()));
                    }

                    msg.Subject = subject;
                    msg.IsBodyHtml = isBodyHtml;
                    msg.Body = body;

                    SmtpClient client = new SmtpClient();

                    client.Host = smtpHost;
                    client.UseDefaultCredentials = true;//winform中不受影响,asp.net中,false表示不发送身份严正信息


                    client.Port = Convert.ToInt32(port);
                    //sc.EnableSsl = false;//如果服务器不支持ssl则报,服务器不支持安全连接 错误
                    client.Credentials = new NetworkCredential(userName, password);
                    client.DeliveryMethod = SmtpDeliveryMethod.Network;

                    client.Send(msg);

                }
                catch (Exception ex)
                {
                    Loger.writeExceptionLog(ex.Message);
                    isSuccess = false;
                    throw ex;
                }

                return isSuccess;

            }
    50  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • dqlfjy
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-17 09:45:231楼 得分:25
    用jmail
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ustbwuyi
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-17 09:49:042楼 得分:20
    C# code
    string SendTos=SendTo.Text.Trim();  //发送人 string CcTos=CcTo.Text.Trim();    //抄送人 string[] Receiver=System.Text.RegularExpressions.Regex.Split(SendTos+CcTos,","); //总收件人 string FromMail="ustbwuyi1@163.com";//发件人 string Title="你好"; //邮件主题 string Body="附件里重要文档,请查收!"; //邮件主体 string ShowName="ustbwuyi";//显示名字 if(SendTos!="" || CcTos!="") { //用户名(取发送邮箱的@前面的部分,即ustbwuyi1 string MailUserName=FromMail.Substring(0,FromMail.IndexOf("@")); //密码 string MailPassword="ustbwuyi"; System.Web.Mail.MailMessage mailmessage=new MailMessage(); mailmessage.From=FromMail; mailmessage.Subject=Title; mailmessage.Body=Body; //添加附件 ArrayList FileNames; //如果存在附件 if(FileNames.Count>=1) { //添加附件 string Filename; for(int k=0;k<FileNames.Count;k++) { Filename=FileNames[k].ToString(); mailmessage.Attachments.Add(new MailAttachment(Filename)); } } } mailmessage.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate",1); mailmessage.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername",MailUserName); mailmessage.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword",MailPassword); //向收件人和抄送人循环发送 for(int j=0;j<Receiver.Length;j++) { mailmessage.To=Receiver[j].ToString(); System.Web.Mail.SmtpMail.SmtpServer="smtp.163.com"; try { System.Web.Mail.SmtpMail.Send(mailmessage); } catch(Exception ex) { Response.Write("<script language='javascript'>alert('邮件发送失败,请您和ustbwuyi联系(QQ:108556024)!')</script>"); } } }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • yhf831011
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-17 09:57:563楼 得分:0
    楼上兄弟你好!


    能不能对你提供的方法进行简单说明,如方法中都需要什么参数,怎么使用该方法等,

    谢谢!

    另请各位大侠继续发言!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zpcoder
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-17 10:07:434楼 得分:5

    http://topic.csdn.net/u/20080301/17/18568a4c-0c34-4bad-b0c5-08bc16a297ef.html
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • yhf831011
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-17 10:22:425楼 得分:0
    顶!
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved