python发送邮件接收邮件示例分享
接收邮件
代码如下:
import poplib,pdb,email,re,time
from email import header
POP_ADDR = r'pop.126.com'
USER = ''
PASS = ''
CONFIG = ''
def getYear(date):
rslt = re.search(r'\b2\d{3}\b', date)
return int(rslt.group())
def getMonth(date):
monthMap = {'Jan':1,'Feb':2,'Mar':3,'Apr':4,'May':5,'Jun':6,
'Jul':7,'Aug':8,'Sep':9,'Oct':10,'Nov':11,'Dec':12,}
rslt = re.findall(r'\b\w{3}\b', date)
for i in range(len(rslt)):
month = monthMap.get(rslt[i])
if None != month:
break
return month
def getDay(date):
rslt = re.search(r'\b\d{1,2}\b', date)
return int(rslt.group())
def getTime(date):
rslt = re.search(r'\b\d{2}:\d{2}:\d{2}\b', date)
timeList = rslt.group().split(':')
for i in range(len(timeList)):
timeList[i] = int(timeList[i])
return timeList
def transformDate(date):
rslt = getYear(date)
rslt = rslt * 100
rslt = rslt + getMonth(date)
rslt = rslt * 100
rslt = rslt + getDay(date)
timeList = getTime(date)
for i in range(len(timeList)):
rslt = rslt * 100
rslt = rslt + timeList[i]
print(rslt)
return rslt
def getRecentReadMailTime():
fp = open(CONFIG, 'r')
rrTime = fp.read()
fp.close()
return rrTime
def setRecentReadMailTime():
fp = open(CONFIG, 'w')
fp.write(time.ctime())
fp.close()
return
def parseMailSubject(msg):
subSrt = msg.get('subject')
if None == subSrt:
subject = '无主题'
else:
subList = header.decode_header(subSrt)
subinfo = subList[0][0]
subcode = subList[0][1]
if isinstance(subinfo,bytes):
subject = subinfo.decode(subcode)
else:
subject = subinfo
print(subject)
def parseMailContent(msg):
if msg.is_multipart():
for part in msg.get_payload():
parseMailContent(part)
else:
bMsgStr = msg.get_payload(decode=True)
charset = msg.get_param('charset')
msgStr = 'Decode Failed'
try:
if None == charset:
msgStr = bMsgStr.decode()
else:
msgStr = bMsgStr.decode(charset)
except:
pass
print(msgStr)
def recvEmail():
server = poplib.POP3(POP_ADDR)
server.user(USER)
server.pass_(PASS)
mailCount,size = server.stat()
mailNoList = list(range(mailCount))
mailNoList.reverse()
hisTime = transformDate(getRecentReadMailTime())
setRecentReadMailTime()
#pdb.set_trace()
for i in mailNoList:
message = server.retr(i+1)[1]
mail = email.message_from_bytes(b'\n'.join(message))
if transformDate(mail.get('Date')) > hisTime:
parseMailSubject(mail)
#parseMailContent(mail)
else:
break
recvEmail()
发送邮件:
代码如下:
import os,pdb,smtplib,time,mimetypes
from email.header import Header
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.audio import MIMEAudio
from email.mime.image import MIMEImage
COMMASPACE = ','
SONG_PATH = r''
RECORD_FILE = ''
PIC_PATH = ''
CC = []
TO = []
ME = ''
SMTP_SERVER = 'smtp.126.com'
USER = ''
PASS = ''
def constructAddr(addrList):
return COMMASPACE.join(addrList)
def willChooseThisMedia(media, path):
fp = open(path + RECORD_FILE, 'r')
shareInfo = fp.read()
fp.close()
shareInfoList = shareInfo.split('\n')
if media not in shareInfoList:
fp = open(path + RECORD_FILE, 'a')
fp.write(media + '\n')
fp.close()
return True
else:
return False
def getTodayMedia(path):
mediaList = os.listdir(path)
for media in mediaList:
if False == os.path.isfile(path + media):
continue
else:
if (media.endswith('mp3') or media.lower().endswith('jpg')) and\
willChooseThisMedia(media, path):
return media
def getMIMEImage(pic):
fp = open(PIC_PATH + pic, 'rb')
imageType = mimetypes.guess_type(PIC_PATH + pic)
image = MIMEImage(fp.read(),imageType[0].split('/')[1])
fp.close()
image.add_header('Content-Disposition', 'attachment')
image.set_param('filename', pic, header = 'Content-Disposition', charset = 'gb2312')
return image
def getMIMEAudio(song):
fp = open(SONG_PATH + song, 'rb')
audioType = mimetypes.guess_type(SONG_PATH + song)
audio = MIMEAudio(fp.read(),audioType[0].split('/')[1])
fp.close()
audio.add_header('Content-Disposition', 'attachment')
audio.set_param('filename', song, header = 'Content-Disposition', charset = 'gb2312')
return audio
def constructMail():
mail = MIMEMultipart()
song = getTodayMedia(SONG_PATH)
pic = getTodayMedia(PIC_PATH)
mailSubject = Header('今日分享 | ' + song, 'utf-8')
mailDate = Header(time.ctime())
mail['subject'] = mailSubject
mail['date'] = mailDate
mail['to'] = constructAddr(TO)
mail['cc'] = constructAddr(CC)
mail['from'] = ME
mailBody = MIMEText(song, _charset='gb2312')
mail.attach(mailBody)
mail.attach(getMIMEAudio(song))
mail.attach(getMIMEImage(pic))
return mail
def sendMail():
session = smtplib.SMTP(SMTP_SERVER)
session.login(USER,PASS)
mail = constructMail()
session.sendmail(ME, constructAddr(TO), mail.as_string())
session.quit()
sendMail()

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











PHP 開発の実践: PHPMailer を使用して MySQL データベース内のユーザーに電子メールを送信する はじめに: 現代のインターネットの構築において、電子メールは重要なコミュニケーション ツールです。 ECにおけるユーザー登録やパスワードのリセット、注文確認など、メール送信は欠かせない機能です。この記事では、PHPMailer を使用してメールを送信し、メール情報を MySQL データベースのユーザー情報テーブルに保存する方法を紹介します。 1. PHPMailer ライブラリをインストールする PHPMailer は

Web アプリケーションでは、多くの場合、一度に複数の受信者に電子メールを送信する必要があります。 PHP は非常に人気のある Web 開発言語であり、PHPMailer は電子メールを送信するための一般的な PHP クラス ライブラリです。 PHPMailer は豊富なインターフェイスを提供し、PHP アプリケーションでの電子メール送信をより便利で使いやすくします。この記事では、PHPMailerを使って複数の宛先にメールを送信する方法と手順を紹介します。 PHPMailer をダウンロードするには、まず公式 Web サイト (

Flask-Mail を使用して電子メールを送信する方法 インターネットの発展に伴い、電子メールは人々がコミュニケーションを図るための重要なツールになりました。 Web アプリケーションを開発する場合、ユーザーが正常に登録した後にウェルカム メールを送信したり、ユーザーがパスワードを忘れたときにパスワード リセット メールを送信したりするなど、特定のシナリオでメールを送信する必要がある場合があります。 Flask はシンプルで柔軟な Python Web フレームワークであり、Flask-Mail は Flask フレームワークでメールを送信するための拡張ライブラリです。

Python は、Alibaba Cloud インターフェースに接続してメール送信機能を実装します。Alibaba Cloud は、メール送信サービスを含む一連のサービス インターフェースを提供します。 Python スクリプトを介して Alibaba Cloud インターフェイスに接続すると、電子メールを迅速に送信できます。この記事では、Python スクリプトを使用して Alibaba Cloud インターフェイスに接続し、メール送信機能を実装する方法を説明します。まず、Alibaba Cloud でメール送信サービスを申し込み、対応するインターフェース情報を取得する必要があります。 Alibaba Cloud 管理コンソールで、電子メール プッシュ サービスを選択し、新しい電子メールを作成します

PHPキューを使用してメールを送信するにはどうすればよいですか?最新の Web 開発では、大量の電子メールを送信する必要があることがよくあります。多数のユーザーに一括メールを送信する場合でも、ユーザーの行動に基づいてパーソナライズされたメールを送信する場合でも、キューを使用してメールを送信することは優れた方法です。キューは、電子メール送信の効率と安定性を向上させ、電子メールの送信が多すぎることによる過剰なサーバー負荷を回避し、送信が失敗するシナリオにも対処するのに役立ちます。 PHP 開発では、Rab などの一般的なキュー ツールを使用できます。

Python3.x で Poplib モジュールを使用してメールを受信する方法 電子メールは、日常生活や仕事で頻繁に使用されるコミュニケーション手段です。 Python では、poplib モジュールを使用して電子メールを受信できます。 Poplib モジュールは、メール サーバーへの接続、メールの取得、メールの削除などを行うための一連のメソッドを提供します。この記事では、poplib モジュールを使用してメールを受信し、対応するコード例を添付する方法を紹介します。 Poplib モジュールをインストールし、poplib モジュールを使用する

インターネットの継続的な発展と普及により、電子メールは人々の日常的なコミュニケーションに不可欠な部分になりました。 Web サイトのバックエンド開発プロセスでは、電子メール通知や登録確認などの機能を満たすために、PHP を使用して電子メールを送信することが必要になることがよくあります。 PHP には電子メールを送信するための email() 関数が用意されており、その使い方は非常に簡単です。この記事では、PHPのemail()関数を使ってメールを送信する方法を詳しく紹介します。 1. SMTP の設定 email() 関数を使用して電子メールを送信する前に、SMTP を設定する必要があります。

PHP のメール機能を使用して電子メールを送信する完全なプロセス。インターネット技術の発展に伴い、電子メールの日常生活での役割はますます重要になり、電子メールの送受信は人々の仕事やライフスタイルに不可欠なものになりました。 Webサイト制作では、メールで各種通知や確認、登録などを行う必要がある場合が多いです。この記事では、PHP のメール機能を使用してメールを送信する完全なプロセスを紹介します。 1. メール関数の基本形 PHP では、メールを送信するために使用される関数は mail() です。
