前の記事で述べた自動投稿手法がめんどうなので、Gmailを経由した投稿も考えていました。
Gmailを使った投稿方法はこちらを参考にしました。 s4t.hatenablog.com
メールでのはてなブログへの投稿
はてなブログの[設定]→[詳細設定]には、記事を投稿する用のメールアドレスが書いてあります。
ここにメールを送ると、はてなブログに記事が投稿されます。
添付ファイル付でメールを送ると、添付ファイルも一緒に記事に載せてくれるようです。
PythonでGmailを使ってメールを送る
Gmailモジュールなるものがあるらしいです
$ pip install gmail
#mailpost-hatena.py import gmail def mail(head,sentence): # user info username = '自分のGmailのアドレスを書く@gmail.com' password = '自分のGoogleアカウントのパスワードを書く' # To sendmail = '設定に書いてある例のアドレス@blog.hatena.ne.jp' # draft #Attachments fig=['./test.png'] client = gmail.GMail(username,password) message = gmail.Message(head,text=sentence,to=sendmail, attachments=fig) client.send(message) client.close() with open('test.txt','r') as r: h = r.readline().replace('\n','') s = r.read().replace(h,'') r.close() mail(h,s)
test.txtの1行目が記事のタイトル、2行目以降が本文になります。
しかし、ここでよくわからない問題に当たりました。
上記のプログラムではtest.pngというファイルを添付してメールを送信するのですが、何故か記事が投稿されません。
いろいろ試した結果、次のことがわかりました。
を
に変更すれば、正常に記事が投稿される
2. Pythonを使わずに、Gmailから直接添付ファイル付きではてなブログ宛に送ると、画像付きで記事が投稿される
3. Gmail(Python)を使用しても、はてなブログ以外のアドレス(他のGmailアドレスや、docomo)には添付ファイル付きでも正常に送信される
この方法が使えれば記事の自動投稿は楽だったのですが、画像を投稿したかったので断念しました。
エラーも出ないし原因がよくわかりません………