private void GetRules(string ruleset) { var response = sesclient.DescribeReceiptRuleSetAsync(new DescribeReceiptRuleSetRequest { RuleSetName = ruleset }); try { DescribeReceiptRuleSetResponse result = response.Result; List <ReceiptRule> rules = result.Rules; foreach (ReceiptRule rule in rules) { var recipients = rule.Recipients; foreach (var recipient in recipients) { string[] parts = recipient.Split('@'); var actions = rule.Actions; var name = parts[0]; var domain = parts[1]; string bucket = ""; string topic = ""; foreach (var action in actions) { try { bucket = action.S3Action.BucketName; topic = action.S3Action.TopicArn; } catch (AmazonSimpleEmailServiceException e) { Console.WriteLine("No Topic found in SES S3Action. Message: '{0}' ", e.Message); if (topic == "") { try { topic = action.SNSAction.TopicArn; } catch (AmazonSimpleEmailServiceException e1) { Console.WriteLine("No Topic available from SES SNSAction on {0}. Message:'{1}'", recipient, e1.Message); } } } } if (bucket != "" && topic != "") { var mbx = new FastEmailMailbox(name, domain, bucket, topic); Mailboxes.Add(recipient, mbx); } } } } catch { Console.WriteLine("Unhandled exception while processing SES mailboxes"); } }