コード例 #1
0
ファイル: EmailMessageUtil.cs プロジェクト: Oldsooh/SHTS
        ///<summary>
        /// 添加附件
        ///</summary>
        ///<param name="attachmentsPath">附件的路径集合,以分号分隔</param>
        //public void AddAttachments(string attachmentsPath)
        //{
        //    string[] path = attachmentsPath.Split(';'); //以什么符号分隔可以自定义
        //    Attachment data;
        //    ContentDisposition disposition;
        //    for (int i = 0; i < path.Length; i++)
        //    {
        //        data = new Attachment(path[i], MediaTypeNames.Application.Octet);
        //        disposition = data.ContentDisposition;
        //        disposition.CreationDate = File.GetCreationTime(path[i]);
        //        disposition.ModificationDate = File.GetLastWriteTime(path[i]);
        //        disposition.ReadDate = File.GetLastAccessTime(path[i]);
        //        mMailMessage.Attachments.Add(data);
        //    }
        //}
        ///<summary>
        /// 邮件的发送
        ///</summary>
        public SMSResponse Send(MailMessage mailMessage)
        {
            SMSResponse response = new SMSResponse() { ResponseData = "邮件参数设置错误", statusCode = "201" };

            try
            {
                if (mailMessage != null)
                {
                    mSmtpClient = new SmtpClient();
                    //mSmtpClient.Host = "smtp." + mMailMessage.From.Host;
                    mSmtpClient.Host = this.mSenderServerHost;
                    mSmtpClient.Port = this.mSenderPort;
                    mSmtpClient.UseDefaultCredentials = false;
                    mSmtpClient.EnableSsl = this.mEnableSsl;
                    if (this.mEnablePwdAuthentication)
                    {
                        System.Net.NetworkCredential nc = new System.Net.NetworkCredential(this.mSenderUsername, this.mSenderPassword);
                        //mSmtpClient.Credentials = new System.Net.NetworkCredential(this.mSenderUsername, this.mSenderPassword);
                        //NTLM: Secure Password Authentication in Microsoft Outlook Express
                        mSmtpClient.Credentials = nc.GetCredential(mSmtpClient.Host, mSmtpClient.Port, "NTLM");
                    }
                    else
                    {
                        mSmtpClient.Credentials = new System.Net.NetworkCredential(this.mSenderUsername, this.mSenderPassword);
                    }
                    mSmtpClient.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
                    mSmtpClient.Send(mailMessage);
                    // send successfully.
                    response.statusCode = "200";
                }
            }
            catch (Exception e)
            {
                // send failed.
                response.statusCode = "202";
                response.InnerException = e;
                response.ResponseData = "邮件发送失败";
            }

            return response;
        }