logo

Python Envoi d'e-mails via SMTP

Simple Mail Transfer Protocol (SMTP) est utilisé comme protocole pour gérer le transfert de courrier électronique à l'aide de Python. Il est utilisé pour acheminer les e-mails entre les serveurs de messagerie. Il s'agit d'un protocole de couche application qui permet aux utilisateurs d'envoyer du courrier à un autre. Le destinataire récupère le courrier électronique en utilisant les protocoles POP (protocole postal) et IMAP (protocole d'accès aux messages Internet) .

Python Envoi d'e-mails via SMTP

Lorsque le serveur écoute la connexion TCP d'un client, il initie une connexion sur le port 587.

Python fournit un smtplib module, qui définit un objet de session client SMTP utilisé pour envoyer des e-mails à une machine Internet. Pour cela, nous devons importer le smtplib module à l’aide de l’instruction import.

top 10 hentaï
 $ import smtplib 

L'objet SMTP est utilisé pour le transfert d'e-mail. La syntaxe suivante est utilisée pour créer l'objet smtplib.

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

Il accepte les paramètres suivants.

    hôte:Il s'agit du nom d'hôte de la machine qui exécute votre serveur SMTP. Ici, nous pouvons spécifier l'adresse IP du serveur comme ( https://www.javatpoint.com ) ou localhost. C'est un paramètre facultatif.port:Il s'agit du numéro de port sur lequel la machine hôte écoute les connexions SMTP. Il est 25 par défaut.nom_hôte_local :Si le serveur SMTP s'exécute sur votre machine locale, nous pouvons mentionner le nom d'hôte de la machine locale.

La méthode sendmail() de l'objet SMTP permet d'envoyer le mail à la machine souhaitée. La syntaxe est donnée ci-dessous.

 smtpObj.sendmail(sender, receiver, message) 

Exemple

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

Envoi d'e-mail depuis Gmail

Il existe des cas où les e-mails sont envoyés via le serveur SMTP Gmail. Dans ce cas, nous pouvons passer Gmail comme serveur SMTP au lieu d'utiliser le localhost avec le port 587.

rekha indien

Utilisez la syntaxe suivante.

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

Ici, nous devons nous connecter au compte Gmail en utilisant le nom d'utilisateur et le mot de passe Gmail. A cet effet, la smtplib fournit la méthode login(), qui accepte le nom d'utilisateur et le mot de passe de l'expéditeur.

Cela peut amener votre Gmail à vous demander d'accéder à des applications moins sécurisées si vous utilisez Gmail. Vous devrez l'activer temporairement pour que cela fonctionne.

fonction chr python
Python Envoi d'e-mails via SMTP

Considérez l'exemple suivant.

Exemple

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

Envoi de HTML par e-mail

Nous pouvons formater le HTML dans le message en spécifiant la version MIME, le type de contenu et le jeu de caractères pour envoyer le HTML.

Considérez l'exemple suivant.

Exemple

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