| 
									
										
										
										
											2024-02-07 18:08:41 +08:00
										 |  |  | import smtplib | 
					
						
							|  |  |  | from email.mime.multipart import MIMEMultipart | 
					
						
							|  |  |  | from email.mime.text import MIMEText | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class SMTPClient: | 
					
						
							|  |  |  |     def __init__(self, server: str, port: int, username: str, password: str, _from: str, use_tls=False): | 
					
						
							|  |  |  |         self.server = server | 
					
						
							|  |  |  |         self.port = port | 
					
						
							|  |  |  |         self._from = _from | 
					
						
							|  |  |  |         self.username = username | 
					
						
							|  |  |  |         self.password = password | 
					
						
							|  |  |  |         self._use_tls = use_tls | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def send(self, mail: dict): | 
					
						
							|  |  |  |         smtp = smtplib.SMTP(self.server, self.port) | 
					
						
							|  |  |  |         if self._use_tls: | 
					
						
							|  |  |  |             smtp.starttls() | 
					
						
							| 
									
										
										
										
											2024-03-22 17:58:21 +08:00
										 |  |  |         if self.username and self.password: | 
					
						
							| 
									
										
										
										
											2024-03-09 02:11:03 +01:00
										 |  |  |             smtp.login(self.username, self.password) | 
					
						
							| 
									
										
										
										
											2024-02-07 18:08:41 +08:00
										 |  |  |         msg = MIMEMultipart() | 
					
						
							|  |  |  |         msg['Subject'] = mail['subject'] | 
					
						
							|  |  |  |         msg['From'] = self._from | 
					
						
							|  |  |  |         msg['To'] = mail['to'] | 
					
						
							|  |  |  |         msg.attach(MIMEText(mail['html'], 'html')) | 
					
						
							|  |  |  |         smtp.sendmail(self.username, mail['to'], msg.as_string()) | 
					
						
							|  |  |  |         smtp.quit() |