Compare commits
2 commits
3b28920bf8
...
a36f6d40e3
| Author | SHA1 | Date | |
|---|---|---|---|
| a36f6d40e3 | |||
| c222852d8e |
2 changed files with 14 additions and 14 deletions
|
|
@ -38,9 +38,9 @@ dependencies = [
|
||||||
]
|
]
|
||||||
|
|
||||||
[project.urls]
|
[project.urls]
|
||||||
Documentation = "https://github.com/Micha Albert/carbon-copy#readme"
|
Documentation = "https://git.mra.sh/mra/carbon-copy#readme"
|
||||||
Issues = "https://github.com/Micha Albert/carbon-copy/issues"
|
Issues = "https://git.mra.sh/mra/carbon-copy/issues"
|
||||||
Source = "https://github.com/Micha Albert/carbon-copy"
|
Source = "https://git.mra.sh/mra/carbon-copy"
|
||||||
|
|
||||||
[tool.hatch.version]
|
[tool.hatch.version]
|
||||||
path = "src/carbon_copy/__about__.py"
|
path = "src/carbon_copy/__about__.py"
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,6 @@
|
||||||
# SPDX-License-Identifier: MIT
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import asyncio
|
|
||||||
import email as email_module
|
import email as email_module
|
||||||
from typing import List, Optional, Dict, Any
|
from typing import List, Optional, Dict, Any
|
||||||
from datetime import datetime, timezone
|
from datetime import datetime, timezone
|
||||||
|
|
@ -54,16 +53,12 @@ class EmailConfig:
|
||||||
if missing_fields:
|
if missing_fields:
|
||||||
raise ValueError(f"Missing required environment variables: {', '.join(missing_fields)}")
|
raise ValueError(f"Missing required environment variables: {', '.join(missing_fields)}")
|
||||||
|
|
||||||
# Convert port strings to integers after validation
|
if not smtp_port_str:
|
||||||
try:
|
raise ValueError("SMTP_PORT must be set in the environment variables")
|
||||||
self.smtp_port = int(smtp_port_str)
|
self.smtp_port = int(smtp_port_str)
|
||||||
except ValueError:
|
if not imap_port_str:
|
||||||
raise ValueError(f"SMTP_PORT must be a valid integer, got: {smtp_port_str}")
|
raise ValueError("IMAP_PORT must be set in the environment variables")
|
||||||
|
|
||||||
try:
|
|
||||||
self.imap_port = int(imap_port_str)
|
self.imap_port = int(imap_port_str)
|
||||||
except ValueError:
|
|
||||||
raise ValueError(f"IMAP_PORT must be a valid integer, got: {imap_port_str}")
|
|
||||||
|
|
||||||
|
|
||||||
class EmailMessage:
|
class EmailMessage:
|
||||||
|
|
@ -117,6 +112,9 @@ class SMTPClient:
|
||||||
else:
|
else:
|
||||||
msg = MIMEText(content, "plain")
|
msg = MIMEText(content, "plain")
|
||||||
|
|
||||||
|
if not from_email:
|
||||||
|
raise ValueError("From email must be provided or set in configuration")
|
||||||
|
|
||||||
msg["Subject"] = subject
|
msg["Subject"] = subject
|
||||||
msg["From"] = from_email
|
msg["From"] = from_email
|
||||||
msg["To"] = to_email
|
msg["To"] = to_email
|
||||||
|
|
@ -135,6 +133,8 @@ class SMTPClient:
|
||||||
port=self.config.smtp_port,
|
port=self.config.smtp_port,
|
||||||
use_tls=self.config.smtp_use_tls
|
use_tls=self.config.smtp_use_tls
|
||||||
) as smtp:
|
) as smtp:
|
||||||
|
if not self.config.smtp_username or not self.config.smtp_password:
|
||||||
|
raise ValueError("SMTP username and password must be set in configuration")
|
||||||
await smtp.login(self.config.smtp_username, self.config.smtp_password)
|
await smtp.login(self.config.smtp_username, self.config.smtp_password)
|
||||||
await smtp.send_message(msg)
|
await smtp.send_message(msg)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue