ホームページ >バックエンド開発 >Python チュートリアル >Pythonでメールや添付ファイルを送信する機能を実装する方法を詳しく解説

Pythonでメールや添付ファイルを送信する機能を実装する方法を詳しく解説

黄舟
黄舟オリジナル
2017-05-21 14:10:222003ブラウズ

この記事では、主にメールと添付ファイルを送信する機能を実現するための Python を詳しく紹介します。興味のある方は参考にしてください

今日は Python でのメール送信について説明します。 Baidu にアクセスしてください。まだたくさんのドキュメントがあります。本題に戻ります。

依存関係モジュールに従っていない場合。 、以下のスクリーンショットに従ってインストールしてください

モジュールのインポート時にエラーがなければ、正常にインストールされたことを意味します。

Python は不明な MIME タイプの添付ファイルを送信します。基本的な考え方は次のとおりです。

1. MIMEMultipart

オブジェクトをルート コンテナーとして構築します。
2. MIMEText オブジェクトを電子メールの表示コンテンツとして構築し、それをメールに添付します。ルート コンテナー 3. ファイル添付コンテンツとして MIMEBase オブジェクトを構築し、ルート コンテナーに添付します b. 添付ファイル ヘッダーを設定します
4. ルート コンテナー属性を設定します
5.完全な書式設定されたテキスト
6. smtp を使用して電子メールを送信します

サンプルコード:

 #!/usr/bin/env python
 # -*- coding:utf-8 -*-
 
 import smtplib
 from email.mime.multipart import MIMEMultipart
 from email.mime.text import MIMEText
 from email.mime.application import MIMEApplication
 
 class Mailer(object):
   def init(self,maillist,mailtitle,mailcontent):
     self.mail_list = maillist
     self.mail_title = mailtitle
     self.mail_content = mailcontent
 
     self.mail_host = "smtp.163.com"
     self.mail_user = "your email name"
     self.mail_pass = "your email password"
     self.mail_postfix = "163.com"
 
   def sendMail(self):
 
     me = self.mail_user + "<" + self.mail_user + "@" + self.mail_postfix + ">"
     msg = MIMEMultipart()
     msg[&#39;Subject&#39;] = &#39;Python mail Test&#39;
     msg[&#39;From&#39;] = me
     msg[&#39;To&#39;] = ";".join(self.mail_list)
 
     #puretext = MIMEText(&#39;<h1>你好,<br/>&#39;+self.mail_content+&#39;</h1>&#39;,&#39;html&#39;,&#39;utf-8&#39;)
     puretext = MIMEText(&#39;纯文本内容&#39;+self.mail_content)
     msg.attach(puretext)
 
     # jpg类型的附件
     jpgpart = MIMEApplication(open(&#39;/home/mypan/1949777163775279642.jpg&#39;, &#39;rb&#39;).read())
     jpgpart.add_header(&#39;Content-Disposition&#39;, &#39;attachment&#39;, filename=&#39;beauty.jpg&#39;)
     msg.attach(jpgpart)
 
     # 首先是xlsx类型的附件
     #xlsxpart = MIMEApplication(open(&#39;test.xlsx&#39;, &#39;rb&#39;).read())
     #xlsxpart.add_header(&#39;Content-Disposition&#39;, &#39;attachment&#39;, filename=&#39;test.xlsx&#39;)
     #msg.attach(xlsxpart)
 
     # mp3类型的附件
     #mp3part = MIMEApplication(open(&#39;kenny.mp3&#39;, &#39;rb&#39;).read())
     #mp3part.add_header(&#39;Content-Disposition&#39;, &#39;attachment&#39;, filename=&#39;benny.mp3&#39;)
     #msg.attach(mp3part)
 
     # pdf类型附件
     #part = MIMEApplication(open(&#39;foo.pdf&#39;, &#39;rb&#39;).read())
     #part.add_header(&#39;Content-Disposition&#39;, &#39;attachment&#39;, filename="foo.pdf")
     #msg.attach(part)
 
     try:
       s = smtplib.SMTP() #创建邮件服务器对象
       s.connect(self.mail_host) #连接到指定的smtp服务器。参数分别表示smpt主机和端口
       s.login(self.mail_user, self.mail_pass) #登录到你邮箱
       s.sendmail(me, self.mail_list, msg.as_string()) #发送内容
       s.close()
       return True
     except Exception, e:
       print str(e)
       return False
 
 
 if name == &#39;main&#39;:
   #send list
   mailto_list = ["aaa@lsh123.com","bbb@163.com"]
   mail_title = &#39;Hey subject&#39;
   mail_content = &#39;Hey this is content&#39;
   mm = Mailer(mailto_list,mail_title,mail_content)
   res = mm.sendMail()
   print res

以上がPythonでメールや添付ファイルを送信する機能を実装する方法を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。