MCPcopy Create free account
hub / github.com/awsdocs/aws-doc-sdk-examples / usage_demo

Function usage_demo

python/example_code/ses/ses_receipt_handler.py:270–323  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

268
269# snippet-start:[python.example_code.ses.Scenario_ReceiptRulesFilters]
270def usage_demo():
271 print("-" * 88)
272 print(
273 "Welcome to the Amazon Simple Email Service (Amazon SES) receipt rules "
274 "and filters demo!"
275 )
276 print("-" * 88)
277
278 logging.basicConfig(level=logging.INFO, format="%(levelname)s: %(message)s")
279
280 ses_receipt = SesReceiptHandler(boto3.client("ses"), boto3.resource("s3"))
281 filter_name = "block-self"
282 rule_set_name = "doc-example-rule-set"
283 rule_name = "copy-mail-to-bucket"
284 email = "example@example.org"
285 bucket_name = f"amzn-s3-demo-bucket-{time.time_ns()}"
286 prefix = "example-emails/"
287
288 current_ip_address = (
289 request.urlopen("http://checkip.amazonaws.com").read().decode("utf-8").strip()
290 )
291 print(
292 f"Adding a filter to block email from the current IP address "
293 f"{current_ip_address}."
294 )
295 ses_receipt.create_receipt_filter(filter_name, current_ip_address, False)
296 filters = ses_receipt.list_receipt_filters()
297 print("Current filters now in effect are:")
298 print(*filters, sep="\n")
299 print("Removing filter.")
300 ses_receipt.delete_receipt_filter(filter_name)
301
302 print(
303 f"Creating a rule set and adding a rule to copy all emails received by "
304 f"{email} to Amazon S3 bucket {bucket_name}."
305 )
306 print(f"Creating bucket {bucket_name} to hold emails.")
307 bucket = ses_receipt.create_bucket_for_copy(bucket_name)
308 ses_receipt.create_receipt_rule_set(rule_set_name)
309 ses_receipt.create_s3_copy_rule(
310 rule_set_name, rule_name, [email], bucket.name, prefix
311 )
312 rule_set = ses_receipt.describe_receipt_rule_set(rule_set_name)
313 print(f"Rule set {rule_set_name} looks like this:")
314 pprint(rule_set)
315 print(f"Deleting rule {rule_name} and rule set {rule_set_name}.")
316 ses_receipt.delete_receipt_rule(rule_set_name, rule_name)
317 ses_receipt.delete_receipt_rule_set(rule_set_name)
318 print(f"Emptying and deleting bucket {bucket_name}.")
319 bucket.objects.delete()
320 bucket.delete()
321
322 print("Thanks for watching!")
323 print("-" * 88)
324
325
326# snippet-end:[python.example_code.ses.Scenario_ReceiptRulesFilters]

Callers 1

Calls 11

create_receipt_filterMethod · 0.95
list_receipt_filtersMethod · 0.95
delete_receipt_filterMethod · 0.95
create_s3_copy_ruleMethod · 0.95
delete_receipt_ruleMethod · 0.95
SesReceiptHandlerClass · 0.85
deleteMethod · 0.45

Tested by

no test coverage detected