Beispiel #1
0
        private System.String SendMailDotNetOpenMail(anmar.SharpWebMail.EmailServerInfo server)
        {
            System.String               message     = null;
            System.Text.Encoding        encoding    = (System.Text.Encoding)Application["sharpwebmail/send/message/charset"];
            DotNetOpenMail.EmailMessage mailMessage = new DotNetOpenMail.EmailMessage();
            mailMessage.HeaderCharSet = encoding;
            mailMessage.FromAddress   = new DotNetOpenMail.EmailAddress(this.GetFromAddress(), this.fromname.Value);
            System.String[] tokens = anmar.SharpMimeTools.ABNF.address_regex.Split(this.toemail.Value);
            foreach (System.String token in tokens)
            {
                if (anmar.SharpMimeTools.ABNF.address_regex.IsMatch(token))
                {
                    mailMessage.AddToAddress(new DotNetOpenMail.EmailAddress(token.Trim()));
                }
            }
            mailMessage.Subject = this.subject.Value.Trim();
            System.String format = Request.Form["format"];
            if (format != null && format.Equals("html"))
            {
                mailMessage.HtmlPart         = new DotNetOpenMail.HtmlAttachment(bodyStart + FCKEditor.Value + bodyEnd);
                mailMessage.HtmlPart.CharSet = encoding;
            }
            else
            {
                mailMessage.TextPart         = new DotNetOpenMail.TextAttachment(FCKEditor.Value);
                mailMessage.TextPart.CharSet = encoding;
            }

            if (this._headers != null)
            {
                // RFC 2822 3.6.4. Identification fields
                if (this._headers["Message-ID"] != null)
                {
                    mailMessage.AddCustomHeader("In-Reply-To", this._headers["Message-ID"]);
                    mailMessage.AddCustomHeader("References", this._headers["Message-ID"]);
                }
                if (this._headers["References"] != null)
                {
                    mailMessage.AddCustomHeader("References", System.String.Concat(this._headers["References"], " ", this._headers["Message-ID"]).Trim());
                }
                else if (this._headers["In-Reply-To"] != null && this._headers["In-Reply-To"].IndexOf('>') == this._headers["In-Reply-To"].LastIndexOf('>'))
                {
                    mailMessage.AddCustomHeader("References", System.String.Concat(this._headers["In-Reply-To"], " ", this._headers["Message-ID"]).Trim());
                }
            }
            mailMessage.XMailer = System.String.Concat(Application["product"], " ", Application["version"]);
            this.ProcessMessageAttachments(mailMessage);
            try {
                if (log.IsDebugEnabled)
                {
                    log.Debug(System.String.Concat("Sending message. engine: DotNetOpenMail , protocol: ", server.Protocol));
                }
                DotNetOpenMail.SmtpServer SmtpMail = new DotNetOpenMail.SmtpServer(server.Host, server.Port);
                if (server.Protocol.Equals(anmar.SharpWebMail.ServerProtocol.SmtpAuth))
                {
                    anmar.SharpWebMail.IEmailClient client = (anmar.SharpWebMail.IEmailClient)Session["client"];
                    SmtpMail.SmtpAuthToken = new DotNetOpenMail.SmtpAuth.SmtpAuthToken(client.UserName, client.Password);
                }
                mailMessage.Send(SmtpMail);
                SmtpMail = null;
                if (log.IsDebugEnabled)
                {
                    log.Debug("Message sent");
                }
            } catch (System.Exception e) {
                message = e.Message;
                if (log.IsErrorEnabled)
                {
                    log.Error(System.String.Concat("Error sending message. engine: DotNetOpenMail , protocol: ", server.Protocol), e);
                }
            }
            mailMessage = null;
            return(message);
        }
Beispiel #2
0
        private System.String SendMailDotNetOpenMail( anmar.SharpWebMail.EmailServerInfo server )
        {
            System.String message = null;
            DotNetOpenMail.EmailMessage mailMessage = new DotNetOpenMail.EmailMessage();
            mailMessage.FromAddress = new DotNetOpenMail.EmailAddress(this.GetFromAddress(), this.fromname.Value);
            System.String[] tokens = anmar.SharpMimeTools.ABNF.address_regex.Split(this.toemail.Value);
            foreach ( System.String token in tokens ) {
                if ( anmar.SharpMimeTools.ABNF.address_regex.IsMatch(token ) )
                    mailMessage.AddToAddress (new DotNetOpenMail.EmailAddress(token.Trim()));
            }
            mailMessage.Subject = this.subject.Value.Trim();
            System.String format = Request.Form["format"];
            if ( format!=null && format.Equals("html") ) {
                mailMessage.HtmlPart = new DotNetOpenMail.HtmlAttachment(bodyStart + FCKEditor.Value + bodyEnd);
            } else {
                mailMessage.TextPart = new DotNetOpenMail.TextAttachment(FCKEditor.Value);
            }

            if ( this._headers != null ) {
                // RFC 2822 3.6.4. Identification fields
                if ( this._headers["Message-ID"]!=null ) {
                    mailMessage.AddCustomHeader("In-Reply-To", this._headers["Message-ID"]);
                    mailMessage.AddCustomHeader("References", this._headers["Message-ID"]);
                }
                if ( this._headers["References"]!=null ) {
                    mailMessage.AddCustomHeader("References", System.String.Concat (this._headers["References"], " ", this._headers["Message-ID"]).Trim());
                } else if ( this._headers["In-Reply-To"]!=null && this._headers["In-Reply-To"].IndexOf('>')==this._headers["In-Reply-To"].LastIndexOf('>') ) {
                    mailMessage.AddCustomHeader("References", System.String.Concat (this._headers["In-Reply-To"], " ", this._headers["Message-ID"]).Trim());
                }
            }
            mailMessage.XMailer = System.String.Concat (Application["product"], " ", Application["version"]);
            this.ProcessMessageAttachments(mailMessage);
            try {
                if ( log.IsDebugEnabled) log.Error ( "Sending message" );
                DotNetOpenMail.SmtpServer SmtpMail = new DotNetOpenMail.SmtpServer(server.Host, server.Port);
                if ( server.Protocol.Equals(anmar.SharpWebMail.ServerProtocol.SmtpAuth) ) {
                    anmar.SharpWebMail.IEmailClient client = (anmar.SharpWebMail.IEmailClient)Session["client"];
                    SmtpMail.SmtpAuthToken = new DotNetOpenMail.SmtpAuth.SmtpAuthToken(client.UserName, client.Password);
                }
                mailMessage.Send(SmtpMail);
                SmtpMail=null;
                if ( log.IsDebugEnabled) log.Error ( "Message sent" );
            } catch (System.Exception e) {
                message = e.Message;
                if ( log.IsErrorEnabled ) log.Error ( "Error sending message", e );
            }
            mailMessage = null;
            return message;
        }