Garip bir şekilde get_payload ile koşturmak: kod çözdüğü mesajda eşit bir işaret gördüğünde saçma görünüyor. İşte hata görüntüler kod:Python: Eşittir işareti varken e-posta get_payload kod çözme başarısız olur mu?
import email
data = file('testmessage.txt').read()
msg = email.message_from_string(data)
payload = msg.get_payload(decode=True)
print payload
Ve burada örnek bir mesajdır: test message.
İleti, yalnızca ilk "=" kadar yazdırılır. Gerisi ihmal edilir. Neler olduğunu bilen var mı?
"decode = False" ile aynı betik tam iletiyi döndürür, bu nedenle kod çözme eşittir işareti ile mutsuz görünür.
Bu, Python 2.5 kapsamındadır.
Teşekkürler Richie, işe yarıyor. Bununla birlikte, metin olmayan eklerle de uğraşacağım, bu yüzden muhtemelen yeniden ikameyi rasgele yapmak istemiyorum. Metin/düzlemi tespit etmem ve sadece ikame işlemini yapmam gerekecek, ki bu mesaj mesajın mime tipini gördüğümden beri mesajın çok geçmeden mesaj_from_string çağrısını geçtim. Kod çözme işlevini get_payload çağrısı dışında ayrı ayrı aramak mümkün mü? – Parand
Hiç gerçek ikili eklerle uğraşacağından emin misin? Ekler genellikle base64 veya benzerlerini kullanarak e-posta içinde kodlanır, dolayısıyla ikili bir dosyayı temsil etmelerine rağmen, e-posta içinde metin olarak kodlanırlar. – RichieHindle
Yine haklısınız; Çok sayıda örnekle test ettim ve önerdiğiniz ikame ile iyi çalışıyorlar. Tekrar teşekkürler. – Parand