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 ?
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.
É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 |
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.
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!