この記事では主にPythonでメールを送信する機能を詳しく紹介します。使用するモジュールはsmtplibとMIMETextです。興味のある方は参考にしてください。
この記事の例では送信の実装を共有します。メール関数の具体的なコードは次のとおりです。
依存関係: Python コードは、smtplib と MIMEText を実装する必要があります。パッケージをインポートします:
import smtplib from email.mime.text import MIMEText
Use 163 電子メールを送信するには、次のように特定のコードが実装されます:
import smtplib from email.mime.text import MIMEText ''' 发送邮件函数,默认使用163smtp :param mail_host: 邮箱服务器,16邮箱host: smtp.163.com :param port: 端口号,163邮箱的默认端口是 25 :param username: 邮箱账号 xx@163.com :param passwd: 邮箱密码(不是邮箱的登录密码,是邮箱的授权码) :param recv: 邮箱接收人地址,多个账号以逗号隔开 :param title: 邮件标题 :param content: 邮件内容 :return: ''' def send_mail(username, passwd, recv, title, content, mail_host='smtp.163.com', port=25): msg = MIMEText(content) # 邮件内容 msg['Subject'] = title # 邮件主题 msg['From'] = username # 发送者账号 msg['To'] = recv # 接收者账号列表 smtp = smtplib.SMTP(mail_host, port=port) # 连接邮箱,传入邮箱地址,和端口号,smtp的端口号是25 smtp.login(username, passwd) # 登录发送者的邮箱账号,密码 # 参数分别是 发送者,接收者,第三个是把上面的发送邮件的 内容变成字符串 smtp.sendmail(username, recv, msg.as_string()) smtp.quit() # 发送完毕后退出smtp print('email send success.') if __name__ == '__main__': email_user = 'xxxx@163.com' # 发送者账号 email_pwd = 'xxxxx' # 发送者密码,授权码 maillist = 'xxxx@qq.com' title = '测试邮件标题' content = '这里是邮件内容' send_mail(email_user, email_pwd, maillist, title, content)
163 メールボックスの認証コードを取得する方法は次のとおりです:
2. SMTP サービスを有効にし、SMTP ホスト アドレスをクエリします:
3. クライアント認証パスワードをクリックして、認証コード:
QQ Mail を使用して電子メールを送信します。特定のコードは次のように実装されます:
import smtplib from email.mime.text import MIMEText ''' 发送邮件函数,默认使用163smtp :param mail_host: 邮箱服务器,qq邮箱host: smtp.qq.com :param port: 端口号,qq邮箱的默认端口是: 456 :param username: 邮箱账号 xx@163.com :param passwd: 邮箱密码(不是邮箱的登录密码,是邮箱的授权码) :param recv: 邮箱接收人地址,多个账号以逗号隔开 :param title: 邮件标题 :param content: 邮件内容 :return: ''' #qq邮箱发送邮件 def send_mail(username, passwd, recv, title, content, mail_host='smtp.qq.com', port=456): msg = MIMEText(content) # 邮件内容 msg['Subject'] = title # 邮件主题 msg['From'] = username # 发送者账号 msg['To'] = recv # 接收者账号列表 smtp = smtplib.SMTP_SSL(mail_host, port=port) # 连接邮箱,传入邮箱地址,和端口号,smtp的端口号是25 smtp.login(username, passwd) # 登录发送者的邮箱账号,密码 # 参数分别是 发送者,接收者,第三个是把上面的发送邮件的 内容变成字符串 smtp.sendmail(username, recv, msg.as_string()) smtp.quit() # 发送完毕后退出smtp print('email send success.') if __name__ == '__main__': email_user = 'xxx@qq.com' # 发送者账号 email_pwd = 'WOSHINIGE123' # 发送者密码,授权码 maillist = 'xxxx@qq.com' title = '测试邮件标题' content = '这里是邮件内容' send_mail(email_user, email_pwd, maillist, title, content)
添付ファイルのある複数の受信者:
# import smtplib # from email.mime.text import MIMEText # ''' # 发送邮件函数,默认使用163smtp # :param mail_host: 邮箱服务器,qq邮箱host: smtp.163.com # :param port: 端口号,qq邮箱的默认端口是: 25 # :param username: 邮箱账号 xx@163.com # :param passwd: 邮箱密码(不是邮箱的登录密码,是邮箱的授权码) # :param recv: 邮箱接收人地址,多个账号以逗号隔开 # :param title: 邮件标题 # :param content: 邮件内容 # :return: # ''' import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart #邮箱服务器地址 email_host = 'smtp.163.com' #发送者 email_user = 'xxxx@163.com' #授权码 email_pwd = 'WOSHINIGE123' #多个收件人,使用分号分隔 maillist ='xxxx@qq.com;aaaa@qq.com' #对多个收件人进行分割,以;为标准,返回结果是list['xxxx@qq.com','aaaa@qq.com'] email_info = maillist.split(';') #构造一个发附件的邮件内容对象 new_msg = MIMEMultipart() #邮件正文内容 new_msg.attach(MIMEText('test email.....')) #邮件主题 new_msg['Subject'] = 'test email' #邮件发送者 new_msg['From'] = email_user #邮件接收者,多个收件人的账号使用,连接,传入类型是str new_msg['To'] = ','.join(email_info) #打开a.txt读取文本内容 att = MIMEText(open('a.txt').read()) att["Content-Type"] = 'application/octet-stream' # 发送附件就得这么写,固定格式,filename指定附件的名字 att["Content-Disposition"] = 'attachment; filename="haha.txt"' new_msg.attach(att) # 连接邮箱,传入邮箱地址,和端口号,smtp的端口号是25 smtp = smtplib.SMTP(email_host, port=25) # 发送者的邮箱账号,密码,先登录 smtp.login(email_user, email_pwd) smtp.sendmail(email_user, email_info, new_msg.as_string()) smtp.quit() print('email send success.')
複数の受信者がいる場合は、アカウント間にセミコロンを使用します。 smtp.sendmail を分割して実行します (渡される複数の受信者のタイプは list); new_msg['TO'] = recv、受信したタイプは str
以上がメール送信のPython制作例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。