Here is the script of python for confirm sending email, which was used when I was establishing mail server on Amazon AWS EC2, on python 2.7.9.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
import smtplib from email.MIMEText import MIMEText from email.Utils import formatdate from_addr = 'sender@sender.com' to_addr = 'your_address@you.com' msg = MIMEText("test") msg['Subject'] = 'subject' msg['From'] = from_addr msg['To'] = to_addr msg['Date'] = formatdate() s = smtplib.SMTP() # Set server and port. Localhost and port 25 are set as default. # s.connect([host[, port]]) s.connect() # Login if the server restrict user of sending mail # s.login('user_name', 'password') s.sendmail(from_addr, [to_addr], msg.as_string()) s.close() |
Sorry, this entry is only available in 日本語.
父の日、あなたはなにを贈りましたか?
贈り物に困っていますか?
私の父はフルーツが好きなので、今年もフルーツにしました。 でも、普通のものでは面白くない。 受け取っても、「まぁ、そうなるよね」で終わってしまう。 だからこそここはイイものを選ぼうと思いました。
新宿高野や千疋屋もいいけど、単にお金をかけていいものを選んだのでは味がない。 品質は高いですが、「お金かけすぎじゃないか」って心配させることになるかもしれない。
新宿高野
千疋屋総本店
そこで選んだのは、富良野グルメ工房【とみたメロン】の富良野メロン特大XLサイズです。 メロンはこれまで数多く食べたでしょうが、特大メロンとなるとわけがちがいます。 北海道富良野の豊かな大地で育った特大メロンの贈り物です。
富良野メロン特大XLサイズ
父も大喜びで企画は大成功でした。
とみたメロンハウス
PHPを使ってディレクトリ配下の全ファイルを再帰的に処理する方法です。 イテレータを使います。
例えば全ファイルの絶対パスを出力するなら次のようにします。
|
|
$iterator = new RecursiveIteratorIterator( new RecursiveDirectoryIterator(realpath('dir_path'))); foreach ($iterator as $fileInfo) { if ($fileInfo->isFile()) { echo $fileInfo->getPathname(), "n"; } } |
イテレーションする対象をファイルだけに絞ったものを作るのもありですね。 次のように yield を使って関数を作ることもできます。
|
|
function allSubdirectoryAndFilesIterator($dirPath) { return new new RecursiveIteratorIterator( new RecursiveDirectoryIterator(realpath($dirPath))); } function allFiles($dirPath) { foreach (allSubDirectoryAndFiles('directory_path') as $fileInfo) { if ($fileInfo->isFile()) { yield $fileInfo; } } } |
でもこれは yield を使っているため PHP 5.5 からしか使えません。 FilterIterator を使えば PHP 5.1 から使える関数を作成できます。
|
|
class FileFilterIterator extends FilterIterator { function accept() { $fileInfo = $this->getInnerIterator()->current(); if ($fileInfo !== null || $fileInfo->isFile()) { return true; } return false; } } |
このように FileFilterIterator を作り、 $iterator = new FileFilterIterator($anIterator); のようにすれば、ファイルのみの Iterator が作れます。
「Iterator なんて 言語の機能に依存しすぎだから readdir つかって自分でイテレータ作るべきだ」というご意見もあります。
ctype.h で定義されている、よく使うであろう関数をまとめてみました。
文字チェック
- int isalnum(int character)
引数が文字 ('A' から 'Z', 'a' から 'z' または 0 から 9) なら 非ゼロ、そうでなければゼロを返す。
- int isalpha(int character)
引数がアルファベットなら非ゼロ、そうでなければゼロを返す。
- int isdigit(int character)
引数が数字 (0 から 9) なら非ゼロ、そうでなければゼロを返す。
- int isxdigit(int character)
引数が16進数文字 (0 から 9、'A' から 'F' または 'a' から 'f') なら非ゼロ、そうでなければゼロを返す。
- int iscntrl(int character)
引数が制御文字 (0x00 から 0x1F または 0x7F) なら非ゼロ、そうでなければゼロを返す。
- int isprint(int character)
引数が印字可能文字 (0x20 から 0x7E) なら非ゼロ、そうでなければゼロを返す。
- int isgraph(int character)
引数がスペース以外の印字可能文字 (0x21 から 0x7E) なら非ゼロ、そうでなければゼロを返す。
- int islower(int character)
引数が小文字なら非ゼロ、そうでなければゼロを返す。
- int isupper(int character)
引数が大文字なら非ゼロ、そうでなければゼロを返す。
- int isspace(int character)
引数が空白文字 (スペース、タブ文字、復帰文字、改行文字、垂直タブ文字、改ページ文字) なら非ゼロ、そうでなければゼロを返す。
- int ispunct(int character)
引数が句読点文字 (空白文字とisalnumが非ゼロとなる文字を除くすべての文字) なら非ゼロ、そうでなければゼロを返す。
文字変換
- int tolower(int character)
character が大文字なら、それを小文字にして返す。
- int toupper(int character)
character が小文字なら、それを大文字にして返す。
A Life Summary of an Gypsy