0

私はpostfixとpythonが初めてです。Ubuntuでpostfixをセットアップし、で構成しmain.cfましたmailbox_command = /home/someuser/test.py

test.py:

#!/usr/bin/python
import sys, MySQLdb

email_input = sys.stdin
db = MySQLdb.connect(host="localhost",
                     user="user", 
                     passwd="password",
                     db="test")

cur = db.cursor()

sql = "insert into postfix (value) values (%s)"
cur.execute(sql, (email_input,))
db.commit()
db.close()

メールの内容がフィールドに挿入されることを期待していましたが、代わりに<open file '<stdin>', mode 'r' at 0x7f018b3b40c0>

そのメモリアドレスと思われるものから生の電子メール文字列を取得するにはどうすればよいですか?

4

1 に答える 1

1

sys.stdin型のオブジェクトでありTextIOWrappercur.execute文字列を期待しています。sys.stdin入力を読み取り、それを表す文字列を返すように指示する必要があります。やろうとしていることに応じて、readlineまたはのいずれかを使用します。readlines

cur.execute(sql, (sys.stdin.readlines(),))
于 2016-10-16T20:25:32.353 に答える