attachment backend use
This commit is contained in:
@@ -1,7 +1,5 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
import tempfile
|
||||
from email import policy
|
||||
from email.message import EmailMessage
|
||||
from pathlib import Path
|
||||
@@ -14,6 +12,10 @@ from app.mailer.campaign.loader import load_campaign_config
|
||||
from app.mailer.campaign.validation import validate_campaign_config
|
||||
from app.mailer.messages.builder import build_campaign_messages
|
||||
from app.mailer.messages.models import MessageAddress, MessageDraft, MessageValidationStatus
|
||||
from app.storage.campaign_attachments import (
|
||||
annotate_built_messages_with_managed_files,
|
||||
prepared_campaign_snapshot,
|
||||
)
|
||||
from app.mailer.dev.mock_mailbox import (
|
||||
clear_records,
|
||||
consume_fail_next_imap,
|
||||
@@ -147,13 +149,18 @@ def run_mock_campaign_send(
|
||||
if clear_mailbox:
|
||||
clear_records()
|
||||
|
||||
with tempfile.TemporaryDirectory(prefix="multimailer-mock-send-") as temp_dir:
|
||||
temp_path = Path(temp_dir)
|
||||
campaign_path = temp_path / f"campaign-{version.id}.json"
|
||||
campaign_path.write_text(json.dumps(version.raw_json, ensure_ascii=False, indent=2), encoding="utf-8")
|
||||
config = load_campaign_config(campaign_path)
|
||||
validation_report = validate_campaign_config(config, campaign_file=campaign_path, check_files=check_files)
|
||||
build_result = build_campaign_messages(config, campaign_file=campaign_path, write_eml=False)
|
||||
with prepared_campaign_snapshot(
|
||||
session,
|
||||
tenant_id=tenant_id,
|
||||
campaign_id=campaign.id,
|
||||
raw_json=version.raw_json if isinstance(version.raw_json, dict) else {},
|
||||
include_bytes=True,
|
||||
prefix="multimailer-mock-send-",
|
||||
) as prepared:
|
||||
config = load_campaign_config(prepared.path)
|
||||
validation_report = validate_campaign_config(config, campaign_file=prepared.path, check_files=check_files)
|
||||
build_result = build_campaign_messages(config, campaign_file=prepared.path, write_eml=False)
|
||||
annotate_built_messages_with_managed_files(build_result.built_messages, prepared.managed_files_by_local_path)
|
||||
|
||||
send_results: list[dict[str, Any]] = []
|
||||
sent_count = 0
|
||||
|
||||
Reference in New Issue
Block a user