0

私は 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 />'
4

1 に答える 1

0

共有サーバーが pip install と virtualenv をサポートしている場合は、これを試してください
virtualenv env --no-site-packages
pip install python<version>
pip install otherpythonpackages

これで問題が解決するはずです。

于 2011-10-04T09:15:29.200 に答える