Articles

GeeksforGeeks

I sidste artikel har vi diskuteret det grundlæggende i at sende en mail fra en Gmail-konto uden emne og uden vedhæftede fil. I dag vil vi lære, hvordan man sender mail med vedhæftede fil og emne ved hjælp af Python. Før vi går videre, anbefales det stærkt at lære, hvordan man sender en simpel mail ved hjælp af Python og lære det grundlæggende arbejde med ‘smtplib’ biblioteket i Python.
Hvis du har læst den foregående artikel, har du fået viden om, hvordan en session oprettes, og hvordan den fungerer. Nu skal du lære at vedhæfte en fil og et emne til mailen. Til det skal du importere nogle native biblioteker i Python. Fra disse biblioteker skal du importere de værktøjer, der bruges i vores programmer.

Stræk til at sende mail med vedhæftede filer fra Gmail-konto:

  1. For at tilføje en vedhæftet fil skal du importere:
    • import smtplib
    • fra email.mime.multipart import MIMEMultipart
    • fra email.mime.text import MIMEText
    • fra email.mime.base import MIMEBase
    • fra email import encoders

    Dette er nogle biblioteker, som vil gøre vores arbejde enkelt. Det er de oprindelige biblioteker, og du behøver ikke at importere et eksternt bibliotek til dette.

  2. Først skal du oprette en instans af MIMEMultipart, nemlig “msg” til at begynde med.
  3. Angiv afsenderens e-mail-id, modtagerens e-mail-id og emnet i “From”, “To” og “Subject”-nøglen i den oprettede instans “msg”.
  4. Ind i en streng skriver du kroppen af den besked, du vil sende, nemlig “body”. Vedhæft nu kroppen med instansen msg ved hjælp af funktionen attach.
  5. Åbn den fil, du ønsker at vedhæfte, i “rb”-tilstanden. Opret derefter en instans af MIMEBase med to parametre. Den første er “_maintype” amd den anden er “_subtype”. Dette er basisklassen for alle MIME-specifikke underklasser af Message.
    Bemærk, at ‘_maintype’ er Content-Type hovedtypen (f.eks. tekst eller billede), og ‘_subtype’ er Content-Type undertypen (f.eks. plain eller gif eller andre medier).
  6. set_payload bruges til at ændre payload den kodede form. Kod den i encode_base64. Og til sidst vedhæftes filen med den oprettede MIMEMultipart-instans msg.

Når du er færdig med disse trin, skal du følge instruktionerne beskrevet i den foregående artikel for at oprette en session, sikre den og kontrollere ægtheden og derefter, efter at du har sendt mailen, afslutte sessionen.

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders
fromaddr = "EMAIL address of the sender"
toaddr = "EMAIL address of the receiver"
msg = MIMEMultipart()
msg = fromaddr
msg = toaddr
msg = "Subject of the Mail"
body = "Body_of_the_mail"
msg.attach(MIMEText(body, 'plain'))
filename = "File_name_with_extension"
attachment = open("Path of the file", "rb")
p = MIMEBase('application', 'octet-stream')
p.set_payload((attachment).read())
encoders.encode_base64(p)
p.add_header('Content-Disposition', "attachment; filename= %s" % filename)
msg.attach(p)
s = smtplib.SMTP('smtp.gmail.com', 587)
s.starttls()
s.login(fromaddr, "Password_of_the_sender")
text = msg.as_string()
s.sendmail(fromaddr, toaddr, text)
s.quit()



Vigtige punkter:

  • Du kan bruge loops til at sende mails til en række personer.
  • Denne kode er enkel at implementere. Men den vil ikke fungere, hvis du har aktiveret 2-trinsbekræftelse på din gmail-konto. Det er nødvendigt at slå 2-step verification fra først.
  • Med denne metode vil Gmail altid sætte din mail i den primære sektion, og de sendte mails vil ikke være Spam.

Denne artikel er bidraget af Rishabh Bansal. Hvis du kan lide GeeksforGeeks og gerne vil bidrage, kan du også skrive en artikel via contribute.geeksforgeeks.org eller sende din artikel på mail til [email protected] Du kan se din artikel blive vist på GeeksforGeeks’ hovedside og hjælpe andre nørder.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.