public static void SESGetIdentityVerificationAttributes()
        {
            #region SESGetIdentityVerificationAttributes
            var sesClient = new AmazonSimpleEmailServiceClient();

            var idsResponse = sesClient.ListIdentities();

            if (idsResponse.Identities.Count > 0)
            {
                var request = new GetIdentityVerificationAttributesRequest
                {
                    Identities = idsResponse.Identities
                };

                var response = sesClient.GetIdentityVerificationAttributes(request);

                foreach (var attr in response.VerificationAttributes)
                {
                    Console.WriteLine(attr.Key);
                    Console.WriteLine("  Verification Status: " +
                                      attr.Value.VerificationStatus.Value);
                    Console.WriteLine("  Verification Token: " +
                                      attr.Value.VerificationToken);
                    Console.WriteLine();
                }
            }
            ;
            #endregion

            Console.ReadLine();
        }
Beispiel #2
0
        public async Task <Dictionary <string, EmailVerificationStatus> > GetStatusAsync(HashSet <string> emailAddresses, CancellationToken ct = default)
        {
            var result = new Dictionary <string, EmailVerificationStatus>();

            var buckets = (int)Math.Ceiling((double)emailAddresses.Count / MaxEmailAddressesPerRequest);

            for (var i = 0; i < buckets; i++)
            {
                ct.ThrowIfCancellationRequested();

                var bucketAddresses = emailAddresses.Skip(i * MaxEmailAddressesPerRequest).Take(MaxEmailAddressesPerRequest);

                var request = new GetIdentityVerificationAttributesRequest
                {
                    Identities = bucketAddresses.ToList()
                };

                var response = await amazonSES.GetIdentityVerificationAttributesAsync(request, ct);

                foreach (var(key, attr) in response.VerificationAttributes)
                {
                    result[key] = MapStatus(attr.VerificationStatus);
                }
            }

            return(result);
        }
Beispiel #3
0
        private async Task <EmailVerificationStatus> GetStatusAsync(string emailAddress, CancellationToken ct)
        {
            var request = new GetIdentityVerificationAttributesRequest
            {
                Identities = new List <string> {
                    emailAddress
                }
            };

            var response = await amazonSES.GetIdentityVerificationAttributesAsync(request, ct);

            var status = response.VerificationAttributes.FirstOrDefault(x => string.Equals(emailAddress, x.Key, StringComparison.OrdinalIgnoreCase));

            return(MapStatus(status.Value.VerificationStatus));
        }
Beispiel #4
0
        private async Task <List <string> > GetUnconfirmedAsync(List <string> fromEmails,
                                                                CancellationToken ct)
        {
            var request = new GetIdentityVerificationAttributesRequest
            {
                Identities = fromEmails.ToList()
            };

            var response = await amazonSES.GetIdentityVerificationAttributesAsync(request, ct);

            var result = new List <string>();

            foreach (var emailAddress in fromEmails)
            {
                if (!response.VerificationAttributes.TryGetValue(emailAddress, out var item) || item.VerificationStatus != VerificationStatus.Success)
                {
                    result.Add(emailAddress);
                }
            }

            return(result);
        }
Beispiel #5
0
        private async Task <IntegrationStatus> GetStatusAsync(List <string> fromEmails,
                                                              CancellationToken ct)
        {
            var request = new GetIdentityVerificationAttributesRequest
            {
                Identities = fromEmails.ToList()
            };

            var response = await amazonSES.GetIdentityVerificationAttributesAsync(request, ct);

            var statuses = new List <IntegrationStatus>();

            foreach (var emailAddress in fromEmails)
            {
                var status = IntegrationStatus.Pending;

                if (response.VerificationAttributes.TryGetValue(emailAddress, out var result))
                {
                    status = MapStatus(result.VerificationStatus);
                }

                if (status == IntegrationStatus.VerificationFailed)
                {
                    return(status);
                }

                statuses.Add(status);
            }

            if (statuses.All(x => x == IntegrationStatus.Verified))
            {
                return(IntegrationStatus.Verified);
            }

            return(IntegrationStatus.Pending);
        }
Beispiel #6
0
        /// <summary>
        /// <para>Given a list of identities (email addresses and/or domains), returns the verification status and (for domain identities) the
        /// verification token for each identity.</para> <para>This action is throttled at one request per second.</para>
        /// </summary>
        ///
        /// <param name="getIdentityVerificationAttributesRequest">Container for the necessary parameters to execute the
        /// GetIdentityVerificationAttributes service method on AmazonSimpleEmailService.</param>
        ///
        /// <returns>The response from the GetIdentityVerificationAttributes service method, as returned by AmazonSimpleEmailService.</returns>
        /// <param name="cancellationToken">
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// </param>
        public Task <GetIdentityVerificationAttributesResponse> GetIdentityVerificationAttributesAsync(GetIdentityVerificationAttributesRequest getIdentityVerificationAttributesRequest, CancellationToken cancellationToken = default(CancellationToken))
        {
            var marshaller   = new GetIdentityVerificationAttributesRequestMarshaller();
            var unmarshaller = GetIdentityVerificationAttributesResponseUnmarshaller.GetInstance();

            return(Invoke <IRequest, GetIdentityVerificationAttributesRequest, GetIdentityVerificationAttributesResponse>(getIdentityVerificationAttributesRequest, marshaller, unmarshaller, signer, cancellationToken));
        }
Beispiel #7
0
        internal GetIdentityVerificationAttributesResponse GetIdentityVerificationAttributes(GetIdentityVerificationAttributesRequest request)
        {
            var task = GetIdentityVerificationAttributesAsync(request);

            try
            {
                return(task.Result);
            }
            catch (AggregateException e)
            {
                ExceptionDispatchInfo.Capture(e.InnerException).Throw();
                return(null);
            }
        }
Beispiel #8
0
        /// <summary>
        /// Initiates the asynchronous execution of the GetIdentityVerificationAttributes operation.
        /// </summary>
        ///
        /// <param name="request">Container for the necessary parameters to execute the GetIdentityVerificationAttributes operation.</param>
        /// <param name="cancellationToken">
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// </param>
        /// <returns>The task object representing the asynchronous operation.</returns>
        public Task <GetIdentityVerificationAttributesResponse> GetIdentityVerificationAttributesAsync(GetIdentityVerificationAttributesRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var marshaller   = new GetIdentityVerificationAttributesRequestMarshaller();
            var unmarshaller = GetIdentityVerificationAttributesResponseUnmarshaller.Instance;

            return(InvokeAsync <GetIdentityVerificationAttributesRequest, GetIdentityVerificationAttributesResponse>(request, marshaller,
                                                                                                                     unmarshaller, cancellationToken));
        }
Beispiel #9
0
        internal GetIdentityVerificationAttributesResponse GetIdentityVerificationAttributes(GetIdentityVerificationAttributesRequest request)
        {
            var marshaller   = new GetIdentityVerificationAttributesRequestMarshaller();
            var unmarshaller = GetIdentityVerificationAttributesResponseUnmarshaller.Instance;

            return(Invoke <GetIdentityVerificationAttributesRequest, GetIdentityVerificationAttributesResponse>(request, marshaller, unmarshaller));
        }