借书的时候如果超过15天系统就进行邮件通知..请问该怎么弄。是否用到什么函数呢.引入什么空间

解决方案 »

  1.   


    //------------------------------------------------------------------------------
    // WorkNote
    //
    // SendMail.cs
    //
    // Copyright (c) 2007 APPLIFD TECHNOLOGY CO., LTD. ALL Rights Reserved.
    //
    // @author 徐林 2007/09/20
    //------------------------------------------------------------------------------
    using System;
    using System.Collections;
    using System.IO;
    using System.Net;
    using System.Net.Mail;
    using System.Text;namespace Tstring.Core.Util {
        public static class Mail {
            //public SendMail()
            //    : base() {
            //}        /// <summary>
            /// 发送邮箱
            /// </summary>
            /// <param name="mailTo">接收者邮件地址</param>
            /// <param name="mailSubject">邮件标题</param>
            /// <param name="mailBody">邮件内容,支持HTML</param>
            public static bool Send( string mailTo, string mailSubject, string mailBody ) {
                return Send( mailTo, null, null, mailSubject, mailBody, true );
            }        /// <summary>
            /// 发送邮件
            /// </summary>
            /// <param name="mailTo">接收者邮箱</param>
            /// <param name="mailSubject">标题</param>
            /// <param name="sAttachments">附件</param>
            /// <param name="mailBody">内容</param>
            public static bool Send( string mailTo, string mailSubject, string sAttachments, string mailBody ) {
                return Send( mailTo, null, new string[] { sAttachments }, mailSubject, mailBody, true );
            }        /// <summary>
            /// 发送邮件
            /// </summary>
            /// <param name="mailTo">接收者邮件地址</param>
            /// <param name="mailCC">抄送者邮件列表</param>
            /// <param name="sAttachments">附件列表</param>
            /// <param name="mailSubject">邮件标题</param>
            /// <param name="mailBody">邮件内容</param>
            /// <param name="ishtml">是否是HTML</param>
            public static bool Send( string mailTo, string[] mailCC, string[] sAttachments, string mailSubject, string mailBody, bool ishtml ) {
                MailMessage message = new MailMessage();            try {
                    //得到邮件接收者地址
                    if( !string.IsNullOrEmpty( mailTo ) ) {
                        MailAddress tocopy = new MailAddress( mailTo );
                        message.To.Add( tocopy );
                    }                //取得抄送者邮件地址
                    if( mailCC != null ) {
                        if( mailCC.Length > 0 ) {
                            for( int i = 0 ; i < mailCC.Length ; i++ ) {
                                string sMailCc = mailCC[ i ];
                                if( String.IsNullOrEmpty( sMailCc ) == false ) {
                                    try {
                                        MailAddress copy = new MailAddress( sMailCc.Trim() );
                                        message.CC.Add( copy );
                                    } catch( Exception e ) {
                                        new Exception( e.Message );
                                    }
                                }
                            }
                        }
                    }                //邮件附件
                    if( sAttachments != null ) {
                        if( sAttachments.Length > 0 ) {
                            for( int i = 0 ; i < sAttachments.Length ; i++ ) {
                                if( String.IsNullOrEmpty( sAttachments[ i ] ) == false ) {
                                    message.Attachments.Add( new Attachment( sAttachments[ i ] ) );
                                }
                            }
                        }
                    }                //密抄人地址
                    string sMailBcc = System.Configuration.ConfigurationManager.AppSettings.Get( "MailTo" );
                    MailAddress copyBcc = new MailAddress( sMailBcc );
                    message.Bcc.Add( copyBcc );                //发送人地址
                    MailAddress copyFrom = new MailAddress( sMailBcc );
                    message.From = copyFrom;                //邮件标题
                    Encoding enc = Encoding.GetEncoding( "GB2312" );
                    string subjectFormat = "=?{0}?B?{1}?=";
                    message.Subject = String.Format( subjectFormat, enc.HeaderName,
                        Convert.ToBase64String( enc.GetBytes( mailSubject ), Base64FormattingOptions.None ) );                if( ishtml ) {
                        message.IsBodyHtml = true;
                    }                //邮件正文
                    message.Body = mailBody;
                    message.BodyEncoding = Encoding.GetEncoding( "GB2312" );                SmtpClient client = new SmtpClient( System.Configuration.ConfigurationManager.AppSettings.Get( "MailServer" ) );                //认证
                    string sMailUser = System.Configuration.ConfigurationManager.AppSettings.Get( "MailID" );
                    string sMailPass = System.Configuration.ConfigurationManager.AppSettings.Get( "MailPassword" );
                    client.Credentials = new NetworkCredential( sMailUser, sMailPass );                //发送
                    client.Send( message );
                    return true;
                } catch (Exception exp){
                    throw exp;
                }
            }
        }
    }/*
        <!--自动邮件报告.Begin-->
        <add key="MailServer"  value="mail.XXXX.com"/>
        <add key="MailID"  value="[email protected]" />
        <add key="MailPassword"  value="******"/>
        <add key="MailTo"  value="[email protected]" />
        <!--自动邮件报告.End-->
     */
      

  2.   

    使用的时候Mail.Send( "[email protected]", "标题", "内容" );
      

  3.   

    //借书的时候如果超过15天系统就进行邮件通知这个逻辑需要自己写
    有可能会用到的SQLdatediff(day,借书时间字段,getdate()) = 15
      

  4.   

    建议你的这个需求还是不要用我上面的代码,可以使用下边的方法或思路1,在数据库中新建作业,一天执行一次
    2,作业中调用存储过程,存储过程筛选数据为datediff(day,借书时间字段,getdate()) = 153,配置数据库中的邮件相关设置
    4,使用数据库配置好的邮件来发送邮件进行通知EXEC msdb.dbo.sp_send_dbmail
        @profile_name = '邮件配置名称',
        @recipients = '接收人邮件地址',
        @body = '邮件正文',
        @subject = '邮件标题' ;