logo

Python Sender e-mail ved hjælp af SMTP

Simple Mail Transfer Protocol (SMTP) bruges som en protokol til at håndtere e-mail-overførslen ved hjælp af Python. Det bruges til at dirigere e-mails mellem e-mail-servere. Det er en applikationslagsprotokol, som gør det muligt for brugere at sende mail til en anden. Modtageren henter e-mail ved hjælp af protokollerne POP (Post Office Protocol) og IMAP (Internet Message Access Protocol) .

Python Sender e-mail ved hjælp af SMTP

Når serveren lytter efter TCP-forbindelsen fra en klient, starter den en forbindelse på port 587.

Python giver en smtplib modul, som definerer et SMTP-klientsessionsobjekt, der bruges til at sende e-mails til en internetmaskine. Til dette formål skal vi importere smtplib modul ved hjælp af importerklæringen.

linux kommandoer
 $ import smtplib 

SMTP-objektet bruges til e-mail-overførslen. Følgende syntaks bruges til at skabe smtplib-objektet.

 import smtplib smtpObj = smtplib.SMTP(host, port, local_hostname) 

Den accepterer følgende parametre.

    vært:Det er værtsnavnet på den maskine, der kører din SMTP-server. Her kan vi angive IP-adressen på serveren som ( https://www.javatpoint.com ) eller localhost. Det er en valgfri parameter.Havn:Det er portnummeret, som værtsmaskinen lytter til SMTP-forbindelserne på. Det er 25 som standard.local_hostname:Hvis SMTP-serveren kører på din lokale maskine, kan vi nævne værtsnavnet på den lokale maskine.

Sendmail()-metoden for SMTP-objektet bruges til at sende mailen til den ønskede maskine. Syntaksen er angivet nedenfor.

 smtpObj.sendmail(sender, receiver, message) 

Eksempel

 #!/usr/bin/python3 import smtplib sender_mail = '[email protected]' receivers_mail = ['[email protected]'] message = '''From: From Person %s To: To Person %s Subject: Sending SMTP e-mail This is a test e-mail message. '''%(sender_mail,receivers_mail) try: smtpObj = smtplib.SMTP('localhost') smtpObj.sendmail(sender_mail, receivers_mail, message) print('Successfully sent email') except Exception: print('Error: unable to send email') 

Sender e-mail fra gmail

Der er tilfælde, hvor e-mails sendes ved hjælp af Gmail SMTP-serveren. I dette tilfælde kan vi sende Gmail som SMTP-server i stedet for at bruge den lokale vært med port 587.

streng til dato konverter

Brug følgende syntaks.

 $ smtpObj = smtplib.SMTP('gmail.com', 587) 

Her skal vi logge ind på Gmail-kontoen ved hjælp af Gmail-brugernavn og -adgangskode. Til dette formål giver smtplib login()-metoden, som accepterer afsenderens brugernavn og adgangskode.

Dette kan få din Gmail til at bede dig om adgang til mindre sikre apps, hvis du bruger Gmail. Du skal slå dette TIL midlertidigt, for at det kan fungere.

concat java streng
Python Sender e-mail ved hjælp af SMTP

Overvej følgende eksempel.

Eksempel

personalevalgskommission betydning
 #!/usr/bin/python3 import smtplib sender_mail = '[email protected]' receivers_mail = ['[email protected]'] message = '''From: From Person %s To: To Person %s Subject: Sending SMTP e-mail This is a test e-mail message. '''%(sender_mail,receivers_mail) try: password = input('Enter the password'); smtpObj = smtplib.SMTP('gmail.com',587) smtpobj.login(sender_mail,password) smtpObj.sendmail(sender_mail, receivers_mail, message) print('Successfully sent email') except Exception: print('Error: unable to send email') 

Sender HTML i e-mail

Vi kan formatere HTML'en i meddelelsen ved at angive MIME-versionen, indholdstypen og tegnsættet for at sende HTML'en.

Overvej følgende eksempel.

Eksempel

 #!/usr/bin/python3 import smtplib sender_mail = &apos;[email protected]&apos; receivers_mail = [&apos;[email protected]&apos;] message = &apos;&apos;&apos;From: From Person %s To: To Person %s MIME-Version:1.0 Content-type:text/html Subject: Sending SMTP e-mail <h3>Python SMTP</h3> <strong>This is a test e-mail message.</strong> &apos;&apos;&apos;%(sender_mail,receivers_mail) try: smtpObj = smtplib.SMTP(&apos;localhost&apos;) smtpObj.sendmail(sender_mail, receivers_mail, message) print(&apos;Successfully sent email&apos;) except Exception: print(&apos;Error: unable to send email&apos;)