インターネットベースのアプリケーションでは、多くの場合、プログラムは電子メールを自動的に送信する必要があります。たとえば、Web サイトの登録システムは、ユーザーが登録するときに登録を確認する電子メールを送信します。ユーザーがログイン パスワードを忘れた場合、ユーザーは電子メールを通じてパスワードを取得します。 smtplib モジュールは、Python での SMTP (Simple Mail Transfer Protocol) のクライアント実装です。 smtplib モジュールを使用すると、電子メールを簡単に送信できます。次の例では、10 行未満のコードで電子メールを送信します。
#coding=gbk import smtplib smtp = smtplib.SMTP() smtp.connect("smtp.yeah.net", "25") smtp.login('用户名', '密码') smtp.sendmail('from@yeah.net', 'to@21cn.com', 'From: from@yeah.net/r/nTo: to@21cn.com/r/nSubject: this is a email from python demo/r/n/r/nJust for test~_~') smtp.quit()
この例は非常に簡単です^_^! stmplib モジュールのクラスとメソッドについては、以下で詳しく紹介します。
smtplib.SMTP([host[, port[, local_hostname[, timeout]]]])
SMTP クラスのコンストラクターは、SMTP サーバーとの接続を表し、この接続を通じて SMTP サーバーに指示を送信し、関連する操作 (ログイン、電子メールの送信など) を実行できます。このクラスは、以下で説明する多数のメソッドを提供します。パラメータはすべてオプションです。上の例の SMTP ホストは「smtp.yeah.net」です。デフォルトは 25 です。 SMTP オブジェクトを作成しています。 これら 2 つのパラメータは初期化中に指定され、初期化中にサーバーに接続するために connect メソッドが自動的に呼び出されます。
smtplib モジュールには SMTP_SSL クラスと LMTP クラスも提供されており、それらの動作は基本的に SMTP と同じです。
smtplib.SMTP によって提供されるメソッド:
SMTP.set_debuglevel(level)
デバッグモードかどうかを設定します。デフォルトは False で、非デバッグ モードです。これは、デバッグ情報が出力されないことを意味します。
SMTP.connect([host[, port]])
指定された smtp サーバーに接続します。パラメータはそれぞれ smpt ホストとポートを表します。注: ホスト パラメータでポート番号を指定することもできるため (例: smpt.yeah.net:25)、ポート パラメータを指定する必要はありません。
SMTP.docmd(cmd[, argstring])
SMTP サーバーに指示を送信します。オプションのパラメータ argstring は、命令のパラメータを表します。次の例では、docmd メソッドを呼び出してサーバーに指示を送信することにより、電子メール送信を完全に実装しています (smtp.yeah.net メール サーバーでテストされています。他のメール サーバーでは試されていません):
import smtplib, base64, time userName = base64.encodestring('from').strip() password = base64.encodestring('password').strip() smtp = smtplib.SMTP() smtp.connect("smtp.yeah.net:25") print smtp.docmd('helo', 'from') print smtp.docmd('auth login') print smtp.docmd(userName) print smtp.docmd(password) print smtp.docmd('mail from:', '<from@yeah.net>') print smtp.docmd('rcpt to:', '<from@yeah.net>') #data 指令表示邮件内容 print smtp.docmd('data') print smtp.docmd( '''''from: from@yeah.net to: from@yeah.net subject: subject email body . ''' ) smtp.quit()
SMTP.helo([ホスト名])
「helo」コマンドを使用して、サーバーに対して ID を確認します。これは、SMTP サーバーに「私が誰であるか」を伝えることと同じです。
SMTP.has_extn(名前)
指定された名前がサーバーのメーリング リストに存在するかどうかを確認します。セキュリティ上の理由から、SMTP サーバーはこのコマンドをブロックすることがよくあります。
SMTP.verify(アドレス)
指定された電子メール アドレスがサーバーに存在するかどうかを確認します。セキュリティ上の理由から、SMTP サーバーはこのコマンドをブロックすることがよくあります。
SMTP.login(ユーザー、パスワード)
SMTP サーバーにログインします。現在、ほぼすべての SMTP サーバーは、電子メールの送信を許可する前にユーザー情報が正当であることを検証する必要があります。
SMTP.sendmail(from_addr, to_addrs, msg[, mail_options, rcpt_options])
メールを送信します。ここで、3 番目のパラメータ msg が電子メールを表す文字列であることに注意してください。一般に、メールはタイトル、送信者、受信者、メールの内容、添付ファイルなどで構成されていることがわかります。メールを送信するときは、メッセージの形式に注意してください。この形式は、smtp プロトコルで定義されている形式です。上記の例では、msg の値は次のとおりです:
'''''From: from@yeah.net To: to@21cn.com Subject: test just for test'''
この文字列の意味は、メールの送信者が「from@yeah.net」、受信者が「to@21cn.com」、メールのタイトルが「test」、メールの内容が「just for test」であることを意味します。 」。注意してみると、送信するメールの内容が写真、動画、添付ファイルなど非常に複雑な場合、MIME 形式に従って文字列を結合するのは非常に面倒です。心配しないでください。Python はこれをすでに考慮しており、写真、ビデオ、添付ファイルなどの複雑なコンテンツを含む電子メールを簡単に送信できる電子メール モジュールを提供しています。 smtplib モジュールを紹介した後、メール モジュールの基本的な使い方を簡単に紹介します。
SMTP.quit()
SMTP サーバーからの切断は、「quit」コマンドを送信することと同じです。
電子メールとその関連サブモジュール
emial モジュールは、RFC 2822 に基づいた MIME やその他のメッセージ ドキュメントを含む電子メール メッセージを処理するために使用されます。これらのモジュールを使用して電子メールのコンテンツを定義するのは非常に簡単です。よく使用されるクラスをいくつか示します:
- クラス email.mime.multipart.MIMEMultipart: 複数の MIME オブジェクトのコレクション。
- クラス email.mime.audio.MIMEAudio: MIME オーディオ オブジェクト。
- クラス email.mime.image.MIMEImage: MIME バイナリ ファイル オブジェクト。
- クラス email.mime.text.MIMEText: MIME テキスト オブジェクト。
上記の説明はわかりにくいように思えるかもしれませんが、実際、私の SMTP と MIME の理解も非常に表面的です。しかし、ほとんどの場合、必要なのは使い方を知ることだけです。これらのクラスを使用して添付ファイル付きの電子メールを送信する方法を示す簡単な例を次に示します。
#coding=gbk import smtplib, mimetypes from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.mime.image import MIMEImage msg = MIMEMultipart() msg['From'] = "from@yeah.net" msg['To'] = 'to@21cn.com' msg['Subject'] = 'email for tesing' #添加邮件内容 txt = MIMEText("这是邮件内容~~") msg.attach(txt) #添加二进制附件 fileName = r'e:/PyQt4.rar' ctype, encoding = mimetypes.guess_type(fileName) if ctype is None or encoding is not None: ctype = 'application/octet-stream' maintype, subtype = ctype.split('/', 1) att1 = MIMEImage((lambda f: (f.read(), f.close()))(open(fileName, 'rb'))[0], _subtype = subtype) att1.add_header('Content-Disposition', 'attachment', filename = fileName) msg.attach(att1) #发送邮件 smtp = smtplib.SMTP() smtp.connect('smtp.yeah.net:25') smtp.login('from', '密码') smtp.sendmail('from@yeah.net', 'to@21cn.com', msg.as_string()) smtp.quit() print '邮件发送成功'
とても簡単なことではありませんか?シンプルさは美しく、最小限のコードで問題を解決します。これが Python です。 smtplib の詳細については、Python マニュアル smtplib モジュール を参照してください。

C/CからJavaScriptへのシフトには、動的なタイピング、ゴミ収集、非同期プログラミングへの適応が必要です。 1)C/Cは、手動メモリ管理を必要とする静的に型付けられた言語であり、JavaScriptは動的に型付けされ、ごみ収集が自動的に処理されます。 2)C/Cはマシンコードにコンパイルする必要がありますが、JavaScriptは解釈言語です。 3)JavaScriptは、閉鎖、プロトタイプチェーン、約束などの概念を導入します。これにより、柔軟性と非同期プログラミング機能が向上します。

さまざまなJavaScriptエンジンは、各エンジンの実装原則と最適化戦略が異なるため、JavaScriptコードを解析および実行するときに異なる効果をもたらします。 1。語彙分析:ソースコードを語彙ユニットに変換します。 2。文法分析:抽象的な構文ツリーを生成します。 3。最適化とコンパイル:JITコンパイラを介してマシンコードを生成します。 4。実行:マシンコードを実行します。 V8エンジンはインスタントコンピレーションと非表示クラスを通じて最適化され、Spidermonkeyはタイプ推論システムを使用して、同じコードで異なるパフォーマンスパフォーマンスをもたらします。

現実世界におけるJavaScriptのアプリケーションには、サーバー側のプログラミング、モバイルアプリケーション開発、モノのインターネット制御が含まれます。 2。モバイルアプリケーションの開発は、ReactNativeを通じて実行され、クロスプラットフォームの展開をサポートします。 3.ハードウェアの相互作用に適したJohnny-Fiveライブラリを介したIoTデバイス制御に使用されます。

私はあなたの日常的な技術ツールを使用して機能的なマルチテナントSaaSアプリケーション(EDTECHアプリ)を作成しましたが、あなたは同じことをすることができます。 まず、マルチテナントSaaSアプリケーションとは何ですか? マルチテナントSaaSアプリケーションを使用すると、Singの複数の顧客にサービスを提供できます

この記事では、許可によって保護されたバックエンドとのフロントエンド統合を示し、next.jsを使用して機能的なedtech SaaSアプリケーションを構築します。 FrontEndはユーザーのアクセス許可を取得してUIの可視性を制御し、APIリクエストがロールベースに付着することを保証します

JavaScriptは、現代のWeb開発のコア言語であり、その多様性と柔軟性に広く使用されています。 1)フロントエンド開発:DOM操作と最新のフレームワーク(React、Vue.JS、Angularなど)を通じて、動的なWebページとシングルページアプリケーションを構築します。 2)サーバー側の開発:node.jsは、非ブロッキングI/Oモデルを使用して、高い並行性とリアルタイムアプリケーションを処理します。 3)モバイルおよびデスクトップアプリケーション開発:クロスプラットフォーム開発は、反応および電子を通じて実現され、開発効率を向上させます。

JavaScriptの最新トレンドには、TypeScriptの台頭、最新のフレームワークとライブラリの人気、WebAssemblyの適用が含まれます。将来の見通しは、より強力なタイプシステム、サーバー側のJavaScriptの開発、人工知能と機械学習の拡大、およびIoTおよびEDGEコンピューティングの可能性をカバーしています。

JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

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

WebStorm Mac版
便利なJavaScript開発ツール

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

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