Wysyłam e-maile za pomocą Pythona. Obecnie moja technika jest to:

msg = email.mime.Multipart.MIMEMultipart()
msg["From"] = username
msg["To"] = recipient
msg["Subject"] = subject
mimeText = email.mime.Text.MIMEText(body, "html")
msg.attach(mimeText)

stringMsg = msg.as_string()

Chciałbym również dodać kilka metadanych do wiadomości - konkretnie, unikalny identyfikator zadania, który ma osiągnąć e-mail, tak że gdy zostanie sprawdzony później (ewentualnie przez inną usługę), mogę uniknąć wysyłania duplikatów e-mail.

Metadane nie muszą być całkowicie tajne ani bezpieczne, po prostu coś, co standardowe klienci e-mail nie renderują. Oczywiście istnieją opcje, w tym adres e-mail BOGUS BCC zawierający identyfikator lub dodanie ukrytego węzła HTML do ciała.

<div style="display:none;">123456789</div>

Ale oboje wydają się całkiem "hacky". Czy jest coś takiego, które będzie trwałe i wysłane jako część e-maila, że mogę sprawdzić za pomocą imaplib później?

msg["secretMetadata"] = "123456789"
0
user1002973 14 sierpień 2014, 15:08

2 odpowiedzi

Najlepsza odpowiedź

Pola zdefiniowane przez użytkownika są dozwolone i wyjaśnione w RFC822. Zasadniczo możesz prefiksować swoje pole niestandardowe za pomocą X-, a to nie będzie sprzeczne z żadnymi istniejącymi pól ani rozszerzeniami.

Tak więc, coś takiego jak msg["X-secretMetadata"] = "123456789".

2
mhawke 14 sierpień 2014, 11:23

Brzmi to tak, jakbyś mógł użyć nagłówków X. Informacje w X-nagłówkach wiadomości e-mail jest zwykle używany do celów specyficznych dla aplikacji, a informacje te nie są zazwyczaj wyświetlane przez klientów poczty.

0
mti2935 14 sierpień 2014, 11:12