logo

Python Invio di e-mail tramite SMTP

Simple Mail Transfer Protocol (SMTP) viene utilizzato come protocollo per gestire il trasferimento di posta elettronica utilizzando Python. Viene utilizzato per instradare le e-mail tra i server di posta elettronica. È un protocollo a livello di applicazione che consente agli utenti di inviare posta a un altro. Il destinatario recupera la posta elettronica utilizzando i protocolli POP (protocollo postale) E IMAP (protocollo di accesso ai messaggi Internet) .

rinominare una directory linux
Python Invio di e-mail tramite SMTP

Quando il server ascolta la connessione TCP da un client, avvia una connessione sulla porta 587.

Python fornisce a smtplib modulo, che definisce un oggetto di sessione client SMTP utilizzato per inviare e-mail a una macchina Internet. A questo scopo dobbiamo importare il file smtplib modulo utilizzando l'istruzione import.

 $ import smtplib 

L'oggetto SMTP viene utilizzato per il trasferimento di posta elettronica. La seguente sintassi viene utilizzata per creare l'oggetto smtplib.

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

Accetta i seguenti parametri.

    ospite:È il nome host della macchina su cui è in esecuzione il server SMTP. Qui possiamo specificare l'indirizzo IP del server come ( https://www.javatpoint.com ) o localhost. È un parametro facoltativo.porta:È il numero di porta su cui la macchina host è in ascolto delle connessioni SMTP. Per impostazione predefinita è 25.nomehost_locale:Se il server SMTP è in esecuzione sul tuo computer locale, possiamo menzionare il nome host del computer locale.

Il metodo sendmail() dell'oggetto SMTP viene utilizzato per inviare la posta alla macchina desiderata. La sintassi è riportata di seguito.

list per array java
 smtpObj.sendmail(sender, receiver, message) 

Esempio

 #!/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') 

Invio di email da Gmail

Ci sono casi in cui le email vengono inviate utilizzando il server SMTP di Gmail. In questo caso possiamo passare Gmail come server SMTP invece di utilizzare il localhost con la porta 587.

Utilizzare la seguente sintassi.

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

Qui, dobbiamo accedere all'account Gmail utilizzando il nome utente e la password Gmail. A questo scopo smtplib fornisce il metodo login(), che accetta il nome utente e la password del mittente.

Ciò potrebbe far sì che Gmail ti chieda l'accesso ad app meno sicure se utilizzi Gmail. Sarà necessario attivarlo temporaneamente affinché funzioni.

Python Invio di e-mail tramite SMTP

Considera il seguente esempio.

Esempio

 #!/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') 

Invio di codice HTML tramite posta elettronica

Possiamo formattare l'HTML nel messaggio specificando la versione MIME, il tipo di contenuto e il set di caratteri per inviare l'HTML.

Considera il seguente esempio.

terminale kali linux

Esempio

 #!/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;)