email.mime
: Skapa e-post- och MIME-objekt från grunden¶
Källkod: Lib/email/mime/
Denna modul är en del av det äldre (Compat32
) e-post-API:et. Dess funktionalitet ersätts delvis av contentmanager
i det nya API:et, men i vissa tillämpningar kan dessa klasser fortfarande vara användbara, även i icke-legacy-kod.
Vanligtvis får du en meddelandeobjektstruktur genom att skicka en fil eller lite text till en parser, som tolkar texten och returnerar rotmeddelandeobjektet. Men du kan också bygga en komplett meddelandestruktur från grunden, eller till och med enskilda Message
-objekt för hand. Faktum är att du också kan ta en befintlig struktur och lägga till nya Message
-objekt, flytta runt dem osv. Detta är ett mycket praktiskt gränssnitt för att dela upp MIME-meddelanden.
Du kan skapa en ny objektstruktur genom att skapa Message
-instanser, lägga till bilagor och alla lämpliga rubriker manuellt. För MIME-meddelanden tillhandahåller dock paketet email
några praktiska underklasser för att göra saker och ting enklare.
Här är klasserna:
- class email.mime.base.MIMEBase(_maintype, _subtype, *, policy=compat32, **_params)¶
Modul:
email.mime.base
Detta är basklassen för alla MIME-specifika underklasser av
Message
. Vanligtvis kommer du inte att skapa instanser specifikt avMIMEBase
, även om du kan.MIMEBase
tillhandahålls främst som en bekväm basklass för mer specifika MIME-medvetna underklasser._maintype är huvudtypen för Content-Type (t.ex. text eller image), och _subtype är den mindre typen för Content-Type (t.ex. plain eller gif). _params är en nyckel/värde-ordbok för en parameter och skickas direkt till
Message.add_header
.Om policy anges (standard är policyn
compat32
) kommer den att skickas tillMessage
.Klassen
MIMEBase
lägger alltid till ett Content-Type-huvud (baserat på _maintype, _subtype och _params) och ett MIME-Version-huvud (alltid inställt på1.0
).Ändrad i version 3.6: Lagt till policy parameter för endast nyckelord.
- class email.mime.nonmultipart.MIMENonMultipart¶
Modul:
email.mime.nonmultipart
Detta är en underklass till
MIMEBase
och är en mellanliggande basklass för MIME-meddelanden som inte är multipart. Det primära syftet med denna klass är att förhindra användningen av metodenattach()
, som bara är meningsfull för multipart-meddelanden. Omattach()
anropas, uppstår ettMultipartConversionError
undantag.
- class email.mime.multipart.MIMEMultipart(_subtype='mixed', boundary=None, _subparts=None, *, policy=compat32, **_params)¶
Modul:
email.mime.multipart
Detta är en underklass till
MIMEBase
och är en mellanliggande basklass för MIME-meddelanden som är multipart. Det valfria _subtype är standardvärdet för mixed, men kan användas för att ange meddelandets subtyp. Ett Content-Type-huvud av multipart/_subtype läggs till i meddelandeobjektet. En rubrik av typen MIME-Version kommer också att läggas till.Valfritt boundary är strängen för flerpartsbegränsningen. Om
None
(standard) används beräknas gränsen vid behov (t.ex. när meddelandet serialiseras)._subparts är en sekvens av initiala subparts för nyttolasten. Det måste vara möjligt att konvertera denna sekvens till en lista. Du kan alltid bifoga nya subparts till meddelandet genom att använda metoden
Message.attach
.Det valfria policy-argumentet är som standard
compat32
.Ytterligare parametrar för rubriken Content-Type hämtas från nyckelordsargumenten eller skickas till argumentet _params, som är en nyckelordsordbok.
Ändrad i version 3.6: Lagt till policy parameter för endast nyckelord.
- class email.mime.application.MIMEApplication(_data, _subtype='octet-stream', _encoder=email.encoders.encode_base64, *, policy=compat32, **_params)¶
Modul:
email.mime.application
Klassen
MIMEApplication
är en underklass tillMIMENonMultipart
och används för att representera MIME-meddelandeobjekt av huvudtypen application. _data innehåller bytes för de råa applikationsdata. Den valfria _subtype anger MIME-subtypen och standardvärdet är octet-stream.Valfri _encoder är en anropsbar (dvs. funktion) som utför den faktiska kodningen av data för transport. Denna anropsbarhet tar ett argument, vilket är
MIMEApplication
-instansen. Den bör användaget_payload()
ochset_payload()
för att ändra payload till kodad form. Det bör också lägga till eventuella Content-Transfer-Encoding eller andra rubriker till meddelandeobjektet vid behov. Standardkodningen är base64. Se modulenemail.encoders
för en lista över de inbyggda kodarna.Det valfria policy-argumentet är som standard
compat32
._params skickas rakt igenom till basklassens konstruktör.
Ändrad i version 3.6: Lagt till policy parameter för endast nyckelord.
- class email.mime.audio.MIMEAudio(_audiodata, _subtype=None, _encoder=email.encoders.encode_base64, *, policy=compat32, **_params)¶
Modul:
email.mime.audio
Klassen
MIMEAudio
är en underklass tillMIMENonMultipart
och används för att skapa MIME-meddelandeobjekt av huvudtypen audio. _audiodata innehåller bytena för de råa ljuddata. Om dessa data kan avkodas som au, wav, aiff eller aifc, kommer subtypen automatiskt att inkluderas i Content-Type-headern. Annars kan du uttryckligen ange ljudundertypen via argumentet _subtype. Om den mindre typen inte kunde gissas och _subtype inte gavs, kommerTypeError
att tas upp.Valfri _encoder är en anropsbar (dvs. funktion) som utför den faktiska kodningen av ljuddata för transport. Denna anropsbarhet tar ett argument, vilket är
MIMEAudio
-instansen. Den bör användaget_payload()
ochset_payload()
för att ändra payload till kodad form. Det bör också lägga till eventuella Content-Transfer-Encoding eller andra rubriker till meddelandeobjektet vid behov. Standardkodningen är base64. Se modulenemail.encoders
för en lista över de inbyggda kodarna.Det valfria policy-argumentet är som standard
compat32
._params skickas rakt igenom till basklassens konstruktör.
Ändrad i version 3.6: Lagt till policy parameter för endast nyckelord.
- class email.mime.image.MIMEImage(_imagedata, _subtype=None, _encoder=email.encoders.encode_base64, *, policy=compat32, **_params)¶
Modul:
email.mime.image
Klassen
MIMEImage
är en underklass tillMIMENonMultipart
och används för att skapa MIME-meddelandeobjekt av huvudtypen image. _imagedata innehåller byte för råa bilddata. Om denna datatyp kan detekteras (jpeg, png, gif, tiff, rgb, pbm, pgm, ppm, rast, xbm, bmp, webp och exr försökte), kommer subtypen automatiskt att inkluderas i Content-Type-rubriken. Annars kan du uttryckligen ange bildens subtyp via argumentet _subtype. Om den mindre typen inte kunde gissas och _subtype inte gavs, så kommerTypeError
att uppstå.Valfri _encoder är en anropsbar (dvs. funktion) som utför den faktiska kodningen av bilddata för transport. Denna anropsbarhet tar ett argument, vilket är
MIMEImage
-instansen. Den bör användaget_payload()
ochset_payload()
för att ändra payload till kodad form. Det bör också lägga till eventuella Content-Transfer-Encoding eller andra rubriker till meddelandeobjektet vid behov. Standardkodningen är base64. Se modulenemail.encoders
för en lista över de inbyggda kodarna.Det valfria policy-argumentet är som standard
compat32
._params skickas direkt till
MIMEBase
-konstruktören.Ändrad i version 3.6: Lagt till policy parameter för endast nyckelord.
- class email.mime.message.MIMEMessage(_msg, _subtype='rfc822', *, policy=compat32)¶
Modul:
email.mime.message
Klassen
MIMEMessage
är en underklass tillMIMENonMultipart
och används för att skapa MIME-objekt av huvudtypen message. _msg används som nyttolast och måste vara en instans av klassenMessage
(eller en underklass av denna), annars uppstår ettTypeError
.Valfri _subtype anger meddelandets subtyp; standardvärdet är rfc822.
Det valfria policy-argumentet är som standard
compat32
.Ändrad i version 3.6: Lagt till policy parameter för endast nyckelord.
- class email.mime.text.MIMEText(_text, _subtype='plain', _charset=None, *, policy=compat32)¶
Modul:
email.mime.text
Klassen
MIMEText
är en underklass tillMIMENonMultipart
och används för att skapa MIME-objekt av huvudtypen text. _text är strängen för nyttolasten. _subtype är den mindre typen och standardvärdet är plain. _charset är textens teckenuppsättning och skickas som ett argument tillMIMENonMultipart
-konstruktören; standardvärdet ärus-ascii
om strängen endast innehållerascii
-kodpunkter och annarsutf-8
. Parametern _charset accepterar antingen en sträng eller en instans avCharset
.Om inte argumentet _charset uttryckligen sätts till
None
, kommer det MIMEText-objekt som skapas att ha både en Content-Type header med encharset
parameter och en Content-Transfer-Encoding header. Detta innebär att ett efterföljande anrop avset_payload
inte kommer att resultera i en kodad nyttolast, även om en teckenuppsättning anges i kommandotset_payload
. Du kan ”återställa” detta beteende genom att ta bort rubrikenContent-Transfer-Encoding
, varefter ett anrop avset_payload
automatiskt kodar den nya nyttolasten (och lägger till en ny rubrik Content-Transfer-Encoding`).Det valfria policy-argumentet är som standard
compat32
.Ändrad i version 3.5: _charset accepterar även
Charset
-instanser.Ändrad i version 3.6: Lagt till policy parameter för endast nyckelord.