


Utilisez Python pour envoyer et recevoir un exemple de code par e-mail
À propos du courrier électronique
Avant l'université, je n'utilisais pratiquement pas le courrier électronique, donc je ne ressentais pas son existence et je ne connaissais pas son utilisation, cependant, après l'université, au fur et à mesure que j'en savais davantage ; et de plus en plus de gens, mes connaissances Cela devient de plus en plus répandu et le courrier électronique est devenu un outil de communication très important. Certains cours universitaires nécessitent l'envoi d'un courrier électronique aux enseignants, l'inscription sur un site Web nécessite un courrier électronique et la recherche d'emploi également. nécessite un email. Alors quel est le principe d'un email ?
Envoi de mail
Protocole SMTP
SMTP (Simple Mail Transfer Protocol) est un protocole de transfert de courrier simple. Il s'agit d'un ensemble de protocoles utilisés pour transférer le courrier de l'adresse source à l'adresse de destination. Règles qui régissent la façon dont les lettres sont relayées. Le protocole SMTP appartient à la suite de protocoles TCP/IP, qui aide chaque ordinateur à trouver la prochaine destination lors de l'envoi ou du relais de lettres. Grâce au serveur spécifié par le protocole SMTP, vous pouvez envoyer l'e-mail au serveur du destinataire en quelques minutes seulement.
Module SMTP en python
Étapes de base pour utiliser SMTP
Se connecter au serveur
Connexion
Envoyer la demande de service
Déconnexion
import smtplib from email import encoders from email.header import Header from email.mime.text import MIMEText from email.utils import parseaddr, formataddr def send_email(from_addr, to_addr, subject, password): msg = MIMEText("邮件正文",'html','utf-8') msg['From'] = u'<%s>' % from_addr msg['To'] = u'<%s>' % to_addr msg['Subject'] = subject smtp = smtplib.SMTP_SSL('smtp.163.com', 465) smtp.set_debuglevel(1) smtp.ehlo("smtp.163.com") smtp.login(from_addr, password) smtp.sendmail(from_addr, [to_addr], msg.as_string()) if name == "main": # 这里的密码是开启smtp服务时输入的客户端登录授权码,并不是邮箱密码 # 现在很多邮箱都需要先开启smtp才能这样发送邮件 send_email(u"from_addr",u"to_addr",u"主题",u"password")
Ce qui précède montre l'utilisation de smtplib pour envoyer des e-mails et utilise le cryptage SSL, qui est relativement sûr. L'e-mail est utilisé pour construire le contenu de l'e-mail. Ce qui est envoyé ici est du contenu en texte brut, je pense. la chose importante à laquelle il faut prêter attention est le mot de passe e-mail ici. De plus, les serveurs de messagerie et les ports de chaque entreprise peuvent être différents. Vous pouvez vérifier avant d'utiliser
Voici quelques-uns couramment utilisés :
邮箱 | SMTP服务器 | SSL协议端口 | 非SSL协议端口 |
---|---|---|---|
163 | smtp.163.com | 465或者994 | 25 |
smtp.11.com | 465或587 | 25 |
Recevoir du courrier
POP3 et IMAP
POP fait référence au protocole du bureau de poste, qui vise à permettre aux utilisateurs d'accéder au courrier sur le serveur de boîte aux lettres et de permettre aux utilisateurs de stocker le courrier à partir du vers l'hôte local (c'est-à-dire votre propre ordinateur) et supprimez en même temps les e-mails enregistrés sur le serveur de messagerie. Le serveur POP3 est un serveur de réception de courrier qui suit le protocole POP3 et est utilisé pour recevoir des e-mails.
Plus tard, le protocole IMAP (Interactive Mail Access Protocol) est apparu, qui est le protocole d'accès interactif au courrier. La différence avec POP3 est qu'une fois IMAP activé, les courriers reçus dans le client de messagerie sont toujours conservés. le serveur. , et en même temps, les opérations sur le client seront renvoyées au serveur, telles que la suppression des e-mails, leur marquage comme lus, etc., et les e-mails sur le serveur prendront également les actions correspondantes.
Utiliser POP3
Le module poplib de Python prend en charge POP3, étapes de base :
Se connecter au serveur
Connexion
Émettre une demande de service
Quitter
Méthodes courantes pour poplib :
Méthode | Description | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
POP3(serveur) | Instancier POP3Objet
|
||||||||||||||||||
user(username) | Envoyer le nom d'utilisateur au serveur et attendre que le serveur renvoie des informations tr> | ||||||||||||||||||
pass_(mot de passe) | Mot de passe | ||||||||||||||||||
stat () | Renvoie le statut de la boîte aux lettres, en renvoyant 2 éléments ( le nombre de messages, le nombre total de messages Octets) |
||||||||||||||||||
list([msgnum]) | Extension de stat(), renvoyant un ancêtre de 3 tuples (informations de retour, liste de messages, taille du message), si msgnum est spécifié, seules les données du message spécifié seront renvoyées | ||||||||||||||||||
retr(msgnum) | Obtenir les détails msgnum, défini sur read, renvoie un 3-tuple (renvoie des informations, tout le contenu du message msgnum, le nombre d'octets du message si msgnum est spécifié). seules les données du message spécifié seront renvoyées | ||||||||||||||||||
dele(msgnum) | Marquer le message spécifié pour suppression | ||||||||||||||||||
quit() | Déconnectez-vous, enregistrez les modifications, déverrouillez la boîte aux lettres, mettez fin à la connexion, quittez |
from poplib import POP3 p = POP3('pop.163.com') p.user('xxxxxxx@163.com') p.pass_('xxxxxxxx') p.stat() ... p.quit()
方法 | 描述 |
---|---|
IMAP4(server) | 与IMAP服务器建立连接 |
login(user, pass) | 用户密码登录 |
list() | 查看所有的文件夹(IMAP可以支持创建文件夹) |
select() | 选择文件夹默认是"INBOX" |
search() | 三个参数,第一的是CHARSET,通常为None(ASCII),第二个参数不知到是干什么官方没解释 |
import getpass, imaplib M = imaplib.IMAP4() M.login(getpass.getuser(), getpass.getpass()) M.select() typ, data = M.search(None, 'ALL') for num in data[0].split(): typ, data = M.fetch(num, '(RFC822)') print 'Message %s\n%s\n' % (num, data[0][1]) M.close() M.logout()
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

PHP et Python ont leurs propres avantages et inconvénients, et le choix dépend des besoins du projet et des préférences personnelles. 1.Php convient au développement rapide et à la maintenance des applications Web à grande échelle. 2. Python domine le domaine de la science des données et de l'apprentissage automatique.

Activer l'accélération du GPU Pytorch sur le système CentOS nécessite l'installation de versions CUDA, CUDNN et GPU de Pytorch. Les étapes suivantes vous guideront tout au long du processus: CUDA et CUDNN Installation détermineront la compatibilité de la version CUDA: utilisez la commande NVIDIA-SMI pour afficher la version CUDA prise en charge par votre carte graphique NVIDIA. Par exemple, votre carte graphique MX450 peut prendre en charge CUDA11.1 ou plus. Téléchargez et installez Cudatoolkit: visitez le site officiel de Nvidiacudatoolkit et téléchargez et installez la version correspondante selon la version CUDA la plus élevée prise en charge par votre carte graphique. Installez la bibliothèque CUDNN:

Python et JavaScript ont leurs propres avantages et inconvénients en termes de communauté, de bibliothèques et de ressources. 1) La communauté Python est amicale et adaptée aux débutants, mais les ressources de développement frontal ne sont pas aussi riches que JavaScript. 2) Python est puissant dans les bibliothèques de science des données et d'apprentissage automatique, tandis que JavaScript est meilleur dans les bibliothèques et les cadres de développement frontaux. 3) Les deux ont des ressources d'apprentissage riches, mais Python convient pour commencer par des documents officiels, tandis que JavaScript est meilleur avec MDNWEBDOCS. Le choix doit être basé sur les besoins du projet et les intérêts personnels.

Docker utilise les fonctionnalités du noyau Linux pour fournir un environnement de fonctionnement d'application efficace et isolé. Son principe de travail est le suivant: 1. Le miroir est utilisé comme modèle en lecture seule, qui contient tout ce dont vous avez besoin pour exécuter l'application; 2. Le Système de fichiers Union (UnionFS) empile plusieurs systèmes de fichiers, ne stockant que les différences, l'économie d'espace et l'accélération; 3. Le démon gère les miroirs et les conteneurs, et le client les utilise pour l'interaction; 4. Les espaces de noms et les CGROUP implémentent l'isolement des conteneurs et les limitations de ressources; 5. Modes de réseau multiples prennent en charge l'interconnexion du conteneur. Ce n'est qu'en comprenant ces concepts principaux que vous pouvez mieux utiliser Docker.

Minio Object Storage: Déploiement haute performance dans le système Centos System Minio est un système de stockage d'objets distribué haute performance développé sur la base du langage Go, compatible avec Amazons3. Il prend en charge une variété de langages clients, notamment Java, Python, JavaScript et GO. Cet article introduira brièvement l'installation et la compatibilité de Minio sur les systèmes CentOS. Compatibilité de la version CentOS Minio a été vérifiée sur plusieurs versions CentOS, y compris, mais sans s'y limiter: CentOS7.9: fournit un guide d'installation complet couvrant la configuration du cluster, la préparation de l'environnement, les paramètres de fichiers de configuration, le partitionnement du disque et la mini

La formation distribuée par Pytorch sur le système CentOS nécessite les étapes suivantes: Installation de Pytorch: La prémisse est que Python et PIP sont installés dans le système CentOS. Selon votre version CUDA, obtenez la commande d'installation appropriée sur le site officiel de Pytorch. Pour la formation du processeur uniquement, vous pouvez utiliser la commande suivante: pipinstalltorchtorchVisionTorChaudio Si vous avez besoin d'une prise en charge du GPU, assurez-vous que la version correspondante de CUDA et CUDNN est installée et utilise la version Pytorch correspondante pour l'installation. Configuration de l'environnement distribué: la formation distribuée nécessite généralement plusieurs machines ou des GPU multiples uniques. Lieu

Lors de l'installation de Pytorch sur le système CentOS, vous devez sélectionner soigneusement la version appropriée et considérer les facteurs clés suivants: 1. Compatibilité de l'environnement du système: Système d'exploitation: Il est recommandé d'utiliser CentOS7 ou plus. CUDA et CUDNN: La version Pytorch et la version CUDA sont étroitement liées. Par exemple, Pytorch1.9.0 nécessite CUDA11.1, tandis que Pytorch2.0.1 nécessite CUDA11.3. La version CUDNN doit également correspondre à la version CUDA. Avant de sélectionner la version Pytorch, assurez-vous de confirmer que des versions compatibles CUDA et CUDNN ont été installées. Version Python: branche officielle de Pytorch

CENTOS L'installation de Nginx nécessite de suivre les étapes suivantes: Installation de dépendances telles que les outils de développement, le devet PCRE et l'OpenSSL. Téléchargez le package de code source Nginx, dézippez-le et compilez-le et installez-le, et spécifiez le chemin d'installation AS / USR / LOCAL / NGINX. Créez des utilisateurs et des groupes d'utilisateurs de Nginx et définissez les autorisations. Modifiez le fichier de configuration nginx.conf et configurez le port d'écoute et le nom de domaine / adresse IP. Démarrez le service Nginx. Les erreurs communes doivent être prêtées à prêter attention, telles que les problèmes de dépendance, les conflits de port et les erreurs de fichiers de configuration. L'optimisation des performances doit être ajustée en fonction de la situation spécifique, comme l'activation du cache et l'ajustement du nombre de processus de travail.
