私は gmailCleaner.py という名前のスクリプトを持っています。私の PC ではうまく動作し、Gmail を (imap を使用して) 思い通りに調整します。
だから私はこのスクリプトを私のウェブサイト(共有ホスティング、Python対応)のすべての人が利用できるようにしたかったのですが、スクリプトは実行されますが、gmailに接続できません(私のPCと同じ設定を使用しています。サーバー私はhtmlフォームからfataを使用します)
私が使用していたimaplibファイルが不足しているためだと思ったので、サーバー(スクリプトと同じフォルダー)にアップロードしましたが、機能しませんでした。
新規: このエラーが発生します: 「モジュール」オブジェクトに属性「IMAP4_SSL」がありません
どんな種類の助けでも良いでしょう
コード:
#!/usr/bin/python
import imaplib
import os
import cgi
print 'Content-type: text/html\n\n'
try:
M=imaplib.IMAP4_SSL('imap.gmail.com', 993)
except:
print 'cannot connect to gmail<br />'
そしてそれは失敗します:Sは「gmailに接続できません」というメッセージを出力し、それが実行されることを意味します。
コメント用に編集しますが、これまでで最もユーザーフレンドリーなコードではありませんが、最初に機能させたかっただけです(特定の送信者からのすべてのメールを削除します):
try:
USER = form.getvalue('username')
PASS = form.getvalue('password')
SENDER = form.getvalue('from')
print USER
except:
print 'cannot get form info<br />'
try:
M=imaplib.IMAP4_SSL('imap.gmail.com', 993)
M.login(USER +'@gmail.com',PASS)
status, count = M.select('Inbox')
except Exception as e: print e
try:
SENDER = '\"' + SENDER + '\"'
data = M.search(None, 'FROM', SENDER)
a = str(data[1])
a = a.split()
b = ''
i = 0
while i < len(a[-1]) - 2:
b = b + a[-1][i]
i += 1
a[-1] = b
b = ''
i = 2
while i < len(a[0]):
b = b + a[0][i]
i += 1
a[0] = b
except:
print 'cannot get ids<br />'
try:
print 'deleting!<br />'
i = 0
while i < len(a):
M.store(a[i], '+FLAGS', '\\Deleted')
i += 1
except:
print 'cannot delete<br />'