コード例 #1
0
    protected void btnSend_Click(object sender, EventArgs e)
    {
        #region 获取用户输入

        string sSubject = this.txtSubject.Text.Trim();

        string sToEmailList   = this.hdnToEmailList.Text;
        string sToContactList = this.hdnToContactList.Text;
        string sToUserList    = this.hdnToUserList.Text;

        string sCCEmailList   = this.hdnCCEmailList.Text;
        string sCCContactList = this.hdnCCContactList.Text;
        string sCCUserList    = this.hdnCCUserList.Text;

        bool bAppendMyPic = this.chkAppendMyPicture.Checked;

        string sBody = this.txtBody.Text.Trim();

        #endregion

        #region 准备接口数据

        string[] ToEmailArray     = null;
        int[]    ToContactIDArray = null;
        int[]    ToUserIDArray    = null;

        string[] CCEmailArray     = null;
        int[]    CCContactIDArray = null;
        int[]    CCUserIDArray    = null;

        #region To

        #region ToEmail
        if (sToEmailList == string.Empty)
        {
            ToEmailArray = new string[0];
        }
        else
        {
            sToEmailList = sToEmailList.Replace(",", ";");
            ToEmailArray = sToEmailList.Split(';');
        }
        #endregion

        #region ToContact
        if (sToContactList == string.Empty)
        {
            ToContactIDArray = new int[0];
        }
        else
        {
            sToContactList = sToContactList.Replace(",", ";");
            string[] ToContactIDs = sToContactList.Split(';');
            ToContactIDArray = new int[ToContactIDs.Length];
            for (int i = 0; i < ToContactIDs.Length; i++)
            {
                string sToContactID = ToContactIDs[i];
                int    iToContactID = Convert.ToInt32(sToContactID);
                ToContactIDArray.SetValue(iToContactID, i);
            }
        }
        #endregion

        #region ToUser
        if (sToUserList == string.Empty)
        {
            ToUserIDArray = new int[0];
        }
        else
        {
            sToUserList = sToUserList.Replace(",", ";");
            string[] ToUserIDs = sToUserList.Split(';');
            ToUserIDArray = new int[ToUserIDs.Length];
            for (int i = 0; i < ToUserIDs.Length; i++)
            {
                string sToUserID = ToUserIDs[i];
                int    iToUserID = Convert.ToInt32(sToUserID);
                ToUserIDArray.SetValue(iToUserID, i);
            }
        }
        #endregion

        #endregion

        #region CC

        #region CC Email
        if (sCCEmailList == string.Empty)
        {
            CCEmailArray = new string[0];
        }
        else
        {
            sCCEmailList = sCCEmailList.Replace(",", ";");
            CCEmailArray = sCCEmailList.Split(';');
        }
        #endregion

        #region CC Contact
        if (sCCContactList == string.Empty)
        {
            CCContactIDArray = new int[0];
        }
        else
        {
            sCCContactList = sCCContactList.Replace(",", ";");
            string[] CCContactIDs = sCCContactList.Split(';');
            CCContactIDArray = new int[CCContactIDs.Length];
            for (int i = 0; i < CCContactIDs.Length; i++)
            {
                string sCCContactID = CCContactIDs[i];
                int    iCCContactID = Convert.ToInt32(sCCContactID);
                CCContactIDArray.SetValue(iCCContactID, i);
            }
        }
        #endregion

        #region CC User
        if (sCCUserList == string.Empty)
        {
            CCUserIDArray = new int[0];
        }
        else
        {
            sCCUserList = sCCUserList.Replace(",", ";");
            string[] CCUserIDs = sCCUserList.Split(';');
            CCUserIDArray = new int[CCUserIDs.Length];
            for (int i = 0; i < CCUserIDs.Length; i++)
            {
                string sCCUserID = CCUserIDs[i];
                int    iCCUserID = Convert.ToInt32(sCCUserID);
                CCUserIDArray.SetValue(iCCUserID, i);
            }
        }
        #endregion

        #endregion

        #endregion

        #region 调用API

        sBody = this.txtBody.Text.Trim();

        string sCloseDialogCodes = "window.parent.CloseGlobalPopup();";

        string res = string.Empty;

        try
        {
            ServiceManager sm = new ServiceManager();
            using (LP2ServiceClient service = sm.StartServiceClient())
            {
                #region SendEmailRequest

                ReplyToEmailRequest req = new ReplyToEmailRequest();

                req.FromUser               = this.iCurrentUserID;
                req.EmailUniqueId          = this.EmailUniqueId;
                req.Subject                = sSubject;
                req.ReplyToEmailLogId      = this.iEmailLogID;
                req.EmailBody              = Encoding.UTF8.GetBytes(sBody);
                req.AppendPictureSignature = bAppendMyPic;

                req.ToEmail   = sToEmailList;
                req.ToUser    = ToUserIDArray;
                req.ToContact = ToContactIDArray;
                req.CCEmail   = sCCEmailList;
                req.CCUser    = CCUserIDArray;
                req.CCContact = CCContactIDArray;
                req.hdr       = new ReqHdr();

                #endregion

                res = service.ReplyToMessage(req);
            }
        }
        catch (System.ServiceModel.EndpointNotFoundException)
        {
            string sExMsg = string.Format("Failed to send email, reason: Email Manager is not running.");
            LPLog.LogMessage(LogType.Logerror, sExMsg);
            PageCommon.WriteJsEnd(this, sExMsg, sCloseDialogCodes);
        }
        catch (Exception ex)
        {
            string sExMsg = string.Format("Failed to send email, error: {0}", ex.Message);
            LPLog.LogMessage(LogType.Logerror, sExMsg);
            PageCommon.WriteJsEnd(this, sExMsg, sCloseDialogCodes);
        }

        #endregion

        // 提示调用结果
        if (res == string.Empty)
        {
            string RefreshParent = "window.parent.location.href=window.parent.location.href;";
            //   PageCommon.WriteJsEnd(this, "Send email successfully.", sCloseDialogCodes + RefreshParent);
            string sCloseDialogCode = "window.parent.CloseGlobalPopup();";
            PageCommon.WriteJsEnd(this, "Send email successfully.", sCloseDialogCode);
        }
        else
        {
            string RefreshParent = "window.parent.location.href=window.parent.location.href;";
            //   PageCommon.WriteJsEnd(this, "Failed to send email, error: " + res, sCloseDialogCodes + RefreshParent );
            string sCloseDialogCode = "window.parent.CloseGlobalPopup();";
            //   PageCommon.WriteJsEnd(this, "Failed to send email, error: " + res, sCloseDialogCode );
            PageCommon.WriteJsEnd(this, "Send email successfully.", sCloseDialogCode);
        }
    }