99 lines
4.0 KiB
Python
99 lines
4.0 KiB
Python
from pathlib import Path
|
|
import pytest
|
|
from tempfile import TemporaryDirectory
|
|
|
|
|
|
@pytest.fixture
|
|
def tmp_dir():
|
|
tmp_dir = TemporaryDirectory(delete=False)
|
|
print("Created temporary directory ", tmp_dir.name)
|
|
yield tmp_dir.name
|
|
print("Cleaned temporary directory", tmp_dir.name)
|
|
tmp_dir.cleanup()
|
|
|
|
|
|
@pytest.fixture
|
|
def test_email(tmp_dir):
|
|
test_contents = """
|
|
Return-Path: sender@example.com
|
|
Delivered-To: recipient@example.org
|
|
Received: from mail-yw1-f174.google.com (mail-yw1-f174.google.com [209.85.128.174])
|
|
by mx.example.org (Postfix) with ESMTPS id 7B94C160C72
|
|
for recipient@example.org; Wed, 16 Apr 2025 09:23:45 -0700 (PDT)
|
|
Received: by mail-yw1-f174.google.com with SMTP id 5so12345678ywa.9
|
|
for recipient@example.org; Wed, 16 Apr 2025 09:23:42 -0700 (PDT)
|
|
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
|
|
d=example.com; s=20210112;
|
|
h=from:to:subject:date:message-id:mime-version
|
|
|
|
;
|
|
bh=q3rblHeObV5Ov3/B7+E3yRlCopVAn6Mkt14vBcAXxTM=;
|
|
b=QC2U9YyGp6HR5NvBxnv7y4MNO1OrF9dhZwPz+1G2FpvTZ3jrREi8W8tNkE8ys9f9Hd
|
|
GnQDUuFZqDWS9S3IxGu7CHfrFSX/5kVAVxnGK58BqJsvjtJeZ9iKjDDt8XCMQaXfJo9s
|
|
/s7UMz3C+8lXe5BqVvZXjjgTgDG5tDyb8tRNc=
|
|
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
|
|
d=1e100.net; s=20230601;
|
|
h=from:to:subject:date:message-id:mime-version
|
|
|
|
:thread-index
|
|
;
|
|
bh=q3rblHeObV5Ov3/B7+E3yRlCopVAn6Mkt14vBcAXxTM=;
|
|
b=xyUdZMdwCGQr9bxLnOd8jBRiTDBw6LPSRkEXYzYP3yDJLYxzqA3vNh/0KoNMBTF5qF
|
|
EkCGxbBz74vvGpDLUSRKBmgXNRlLlfN93O/QfF4IxLuQg4OLITi6QvtOgVb/iHFwUGcE
|
|
TmLMSYgDd93cw+YXqMtZKztB7/1+4MjCYxUQs=
|
|
X-Gm-Message-State: AOJu0Yy5DBCExZB2/PXGZJRbipzjPKFQEpdnHvMwkbCJd6Bd/xuvCeDb
|
|
JGGsOxfyFXeHYd0J3nPGOg==
|
|
X-Google-Smtp-Source: AGHT+IGQyWQO69p9mhCHt5N5NbKLfb9Ij9fgRFGjk+UJNpRo3S9VPDV6pXXucyU0xAL3AiT5jNtO16w=
|
|
X-Received: by 2002:a25:fb02:0:b0:664:f31a:2be0 with SMTP id u2-20020a25fb02000000b00664f31a2be0mr13538287ybg.36.1713373420812;
|
|
Wed, 16 Apr 2025 09:23:40 -0700 (PDT)
|
|
From: "John Doe" sender@example.com
|
|
To: recipient@example.org
|
|
Subject: Sample email for parsing exercises
|
|
Date: Wed, 16 Apr 2025 12:23:35 -0400
|
|
Message-ID: 7a8b9c0d1e2f3g4h5i6j@mail.example.com
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset="UTF-8"
|
|
Content-Transfer-Encoding: quoted-printable
|
|
Thread-Index: AQHZpT2RwxyzABCDEFghijkLMNO=
|
|
Content-Language: en-US
|
|
X-Spam-Status: No, score=-0.8
|
|
X-Spam-Score: -0.8
|
|
X-Spam-Bar: -
|
|
X-Ham-Report: Spam detection software, running on the system "mailserver.example.org",
|
|
has NOT identified this incoming email as spam. The original
|
|
message has been attached to this so you can view it or label
|
|
similar future email. If you have any questions, see
|
|
the administrator of that system for details.
|
|
X-Spam-Flag: NO
|
|
|
|
Hello,
|
|
|
|
This is a sample email that can be used for parsing exercises. The email includes all standard headers that would be present in a typical email message.
|
|
|
|
The content of this message is kept simple to focus on the structure and headers.
|
|
|
|
You can use this example to test email parsing scripts, to understand email format, or to demonstrate how email headers work.
|
|
|
|
Some key points about email headers:
|
|
|
|
They contain routing information
|
|
They show authentication results (DKIM, SPF)
|
|
They include sender and recipient details
|
|
They contain timestamps and unique identifiers
|
|
Feel free to modify this template as needed for your specific parsing requirements.
|
|
|
|
Regards,
|
|
John Doe
|
|
|
|
--
|
|
John Doe
|
|
Senior Developer
|
|
Example Corp
|
|
Phone: (555) 123-4567
|
|
"""
|
|
|
|
email_path = Path(tmp_dir) / "test_email.txt"
|
|
with open(email_path, "w") as f:
|
|
f.write(test_contents)
|
|
yield email_path
|