protected override AnchorMailbox ResolveAnchorMailbox()
        {
            if (E4eProxyRequestHandler.IsErrorPageRequest(base.ClientRequest))
            {
                return(new AnonymousAnchorMailbox(this));
            }
            if (E4eProxyRequestHandler.IsE4eInvalidStoreRequest(base.ClientRequest))
            {
                this.ThrowRedirectException(E4eProxyRequestHandler.GetErrorUrl(E4eProxyRequestHandler.E4eErrorType.InvalidStoreRequest));
            }
            bool flag = E4eProxyRequestHandler.IsE4ePostPayloadRequest(base.ClientRequest);

            this.GetSenderInfo(flag);
            string text = this.senderEmailAddress;

            if (!string.IsNullOrEmpty(text) && SmtpAddress.IsValidSmtpAddress(text))
            {
                string recipientEmailAddress = base.ClientRequest.QueryString["RecipientEmailAddress"];
                if (flag)
                {
                    if (E4eBackoffListCache.Instance.ShouldBackOff(text, recipientEmailAddress))
                    {
                        PerfCounters.HttpProxyCountersInstance.RejectedConnectionCount.Increment();
                        this.ThrowRedirectException(E4eProxyRequestHandler.GetErrorUrl(E4eProxyRequestHandler.E4eErrorType.ThrottlingRestriction));
                    }
                    else
                    {
                        PerfCounters.HttpProxyCountersInstance.AcceptedConnectionCount.Increment();
                    }
                }
                return(new SmtpWithDomainFallbackAnchorMailbox(text, this)
                {
                    UseServerCookie = true
                });
            }
            if (BEResourceRequestHandler.IsResourceRequest(base.ClientRequest.Url.LocalPath))
            {
                return(new AnonymousAnchorMailbox(this));
            }
            string text2 = string.Format("The sender's email address is not valid. Email={0}, SMTP={1}", this.senderEmailAddress, text);

            base.Logger.AppendGenericError("Invalid sender email address", text2);
            throw new HttpProxyException(HttpStatusCode.NotFound, HttpProxySubErrorCode.EndpointNotFound, text2);
        }
예제 #2
0
 // Token: 0x060004E7 RID: 1255 RVA: 0x0001B22D File Offset: 0x0001942D
 private static bool IsRequestBoundToBEServer(HttpRequest request)
 {
     return(!E4eProxyRequestHandler.IsErrorPageRequest(request) && !BEResourceRequestHandler.IsResourceRequest(request.Url.LocalPath));
 }
예제 #3
0
 // Token: 0x060004E4 RID: 1252 RVA: 0x0001B170 File Offset: 0x00019370
 private static bool IsAnonymousErrorPageRequest(HttpRequest request)
 {
     E4eProxyRequestHandler.E4eErrorType e4eErrorType;
     return(E4eProxyRequestHandler.IsErrorPageRequest(request) && Enum.TryParse <E4eProxyRequestHandler.E4eErrorType>(request.QueryString["code"], true, out e4eErrorType) && (e4eErrorType == E4eProxyRequestHandler.E4eErrorType.OrgNotExisting || e4eErrorType == E4eProxyRequestHandler.E4eErrorType.InvalidStoreRequest));
 }