ホームページ  >  記事  >  バックエンド開発  >  Python でメール モジュール smtplib を使用する方法

Python でメール モジュール smtplib を使用する方法

高洛峰
高洛峰オリジナル
2017-02-15 14:22:321566ブラウズ

Smptp クラス定義: smtplib.SMTP(host[,port[,local_hostname[,,timeout]]])、SMTP のコンストラクターとして、その機能は、接続が成功した後に SMTP サーバーとの接続を確立することです。ログイン、検証、送信、終了などの関連情報をサーバーリクエストに送信できます。 host パラメータはリモート SMTP ホスト アドレス (stmp.163.com など)、port は接続ポート、デフォルトは 25、local_hostname はローカル FQDN (完全なドメイン名) での HELO/EHLO 命令の送信に使用されます。は接続または大多数の接続試行です 2 番目のタイムアウト、SMTP クラスには次のメソッドがあります:

SMTP.connect([host[,port]]) メソッド、リモート SMTP ホストに接続するメソッド、ホストはリモートホスト アドレス、ポートはリモート ホストの SMTP ポートです。デフォルトは 25 です。ホスト:ポート形式を直接使用することもできます (例: SMTP.connect("smtp.163.com","25').
SMTP)。 login(user,password) メソッド、リモート SMTP ホストの検証メソッド。パラメータは SMTP.login("18801457794@139.com",'123456') などのユーザー名とパスワードです。
SMTP.sendmail( from_addr,to_addrs,msg[,mail_options,rcpt_options]) メソッドはメール送信機能を実現し、パラメーターは人物、受信者、電子メールの内容の順です (例: SMTP.sendmail("python@163.com",'404408853))。 @qq.com',body)、本文の内容は次のように定義されます:
"""From:python@163.com
To:404408853@qq.com
Subject:テストメール
テストメール本文"""
SMTP.starttls([keyfile[,certfile]]) メソッドで、TLS (安全な送信) モードを有効にし、すべての SMTP コマンドが暗号化されます。たとえば、gmail の stmp サーバーを使用する場合、メールを正常に送信するにはこれを有効にする必要があります
SMTP。 quit() メソッド、ポート SMTP サーバー接続

以下は、Python がメールを送信する方法の例です

[root@localhost smtplib]# cat simple1.py 
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import smtplib
import string
HOST = "smtp.139.com" #定义smtp主机
SUBJECT = "test" #定义邮件主题
TO = "404408853@qq.com" #定义邮件收件人
FROM = "18801457794@139.com" #定义邮件发件人
text = "python test mail" #邮件的内容
BODY=string.join(( #组装sendmail方法的邮件主体内容,各段以"\r\n"进行分隔
  "From:%s" %FROM,
  "To:%s" %TO,
  "Subject:%s"%SUBJECT,
  "",
  text
),"\r\n")
   
server = smtplib.SMTP() #创建一个SMTP对象
server.connect(HOST,"25") #通过connect方法连接smtp主机
server.starttls() #启动安全传输模式
server.login("18801457794@139.com","123456") #邮件账户登录校验
server.sendmail(FROM,TO,BODY) #邮件发送
server.quit() #断开smtp连接

このコードを実行すると、メールが届きます

Python でメール モジュール smtplib を使用する方法

HTML でのデータレポートメールの実装形式
プレーン テキストの電子メール コンテンツでは、多様なニーズを満たすことができなくなりました。この例では、email.mime の MIMETex クラスを紹介します。電子メールを HTML 形式で実装するために、テーブル、画像、アニメーション、CSS スタイル、フォームなどのすべての HTML 要素がサポートされます。この例では、HTML テーブルを使用して完全なビジネス トラフィック レポートをカスタマイズします。実装コードは次のとおりです。サーバーパフォーマンスレポートメールをグラフィック形式とテキスト形式で実装します

画像データを含むメールコンテンツをリクエストする場合、メール本文が複数の MIME オブジェクトで構成される場合は、同時に MIMEMultipart クラスを参照する必要があります。カプセル化用。この例では、MIMEText クラスと MIMEImage クラスの組み合わせを使用して、サーバー パフォーマンス レポートの電子メールをグラフィック形式でカスタマイズします。実装コードは次のとおりです

#!/usr/bin/env python
#coding:utf-8
import smtplib
from email.mime.text import MIMEText #导入MIMEText类
HOST = "smtp.139.com"
SUBJECT = u"官网流量数据报表"
TO = "404408853@qq.com"
FROM = "18801457794@139.com"
msg = MIMEText("""
  <table width="800" border="0" cellspacing="0" cellpadding="4">
    <tr>
      <td bgcolor="#CECFAD" height="20" style="font-size:14px">*官网数据<a href="monitor.domain.com">更多</a></td>
    </tr>
    <td bgcolor="#EFEBDE" height="100" style="font-size:13px">
    1)日访问量:<font color=read>152433</font>访问次数:23651 页面浏览量:45123 点击数:545122 数据流量:504Mb<br>
    2)状态码消息<br>
      500:105 404;3264 503;214<br>
    3)访客浏览器信息<br>
      IE:50% firefox:10% chrome:30% other:10%<br>
    4)页面信息<br>
      /index.php 42153<br>
      /view.php 21451<br>
    </td>
    </tr>
  </table>""","html","utf-8")
msg[&#39;Subject&#39;] = SUBJECT
msg[&#39;FROM&#39;] = FROM
msg[&#39;To&#39;] = TO
try:
  server = smtplib.SMTP()
  server.connect(HOST,&#39;25&#39;)
  server.starttls()
  server.login(&#39;18801457794@139.com&#39;,&#39;123456&#39;)
  server.sendmail(FROM,TO,msg.as_string())
  server.quit()
  print "邮件发送成功"
except Exception,e:
  print "失败:" + str(e)

コード実行時の効果は図に示すとおりです

Python でメール モジュール smtplib を使用する方法


詳細Python はメール モジュール smtplib を使用します。この方法に関する記事については、PHP 中国語 Web サイトに注目してください。

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