| 
									
										
										
										
											2010-03-19 23:23:05 +00:00
										 |  |  | # Import the email modules we'll need | 
					
						
							| 
									
										
										
										
											2022-06-22 19:14:27 +02:00
										 |  |  | #from email.parser import BytesParser | 
					
						
							|  |  |  | from email.parser import Parser | 
					
						
							| 
									
										
										
										
											2016-09-07 21:15:59 -04:00
										 |  |  | from email.policy import default | 
					
						
							| 
									
										
										
										
											2010-03-19 23:23:05 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-02-25 18:14:09 +02:00
										 |  |  | # If the e-mail headers are in a file, uncomment these two lines: | 
					
						
							| 
									
										
										
										
											2016-09-07 21:15:59 -04:00
										 |  |  | # with open(messagefile, 'rb') as fp: | 
					
						
							|  |  |  | #     headers = BytesParser(policy=default).parse(fp) | 
					
						
							| 
									
										
										
										
											2010-03-19 23:23:05 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-07 21:15:59 -04:00
										 |  |  | #  Or for parsing headers in a string (this is an uncommon operation), use: | 
					
						
							|  |  |  | headers = Parser(policy=default).parsestr( | 
					
						
							|  |  |  |         'From: Foo Bar <user@example.com>\n' | 
					
						
							| 
									
										
										
										
											2010-03-19 23:23:05 +00:00
										 |  |  |         'To: <someone_else@example.com>\n' | 
					
						
							|  |  |  |         'Subject: Test message\n' | 
					
						
							|  |  |  |         '\n' | 
					
						
							|  |  |  |         'Body would go here\n') | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #  Now the header items can be accessed as a dictionary: | 
					
						
							| 
									
										
										
										
											2016-09-07 21:15:59 -04:00
										 |  |  | print('To: {}'.format(headers['to'])) | 
					
						
							|  |  |  | print('From: {}'.format(headers['from'])) | 
					
						
							|  |  |  | print('Subject: {}'.format(headers['subject'])) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # You can also access the parts of the addresses: | 
					
						
							|  |  |  | print('Recipient username: {}'.format(headers['to'].addresses[0].username)) | 
					
						
							|  |  |  | print('Sender name: {}'.format(headers['from'].addresses[0].display_name)) |