2012-01-25 2 views
2

django.core.mail.send_mail 기능을 사용하여 이메일을 보낼 수 없습니다.send_mail로 이메일을 보낼 때 Django "Incorrect Padding"오류가 발생했습니다.

mail_admins 및 mail_managers를 사용하여 메일을 보내는 것이 정상적으로 작동하므로 메일 구성이 문제가 아닌 것 같습니다. 내 장고 서버가 VIRTUALENV 내에서 실행되기 때문에

나는,

File "/usr/lib/python2.6/base64.py" in decodestring 
321.  return binascii.a2b_base64(s) 

이것은 또한 매우 이상한에서 "잘못된 패딩"오류를 얻고있다. 전체 역 추적은 다음과 같습니다 : 일이있을 수 있는지의

Traceback: 
File "/env_frugar/lib/python2.6/site-packages/django/core/handlers/base.py" in get_response 
    111.       response = callback(request, *callback_args, **callback_kwargs) 
File "/env/lib/python2.6/site-packages/django/contrib/auth/decorators.py" in _wrapped_view 
    23.     return view_func(request, *args, **kwargs) 
File "/env/lib/python2.6/site-packages/django/views/generic/base.py" in view 
    47.    return self.dispatch(request, *args, **kwargs) 
File "/env/lib/python2.6/site-packages/django/views/generic/base.py" in dispatch 
    68.   return handler(request, *args, **kwargs) 
File "/env/lib/python2.6/site-packages/django/views/generic/edit.py" in post 
    172.   return super(BaseCreateView, self).post(request, *args, **kwargs) 
File "/env/lib/python2.6/site-packages/django/views/generic/edit.py" in post 
    138.    return self.form_valid(form) 
File "/env/lib/python2.6/site-packages/django/views/generic/edit.py" in form_valid 
    112.   self.object = form.save() 
File "/env/lib/python2.6/site-packages/django/forms/models.py" in save 
    363.        fail_message, commit, construct=False) 
File "/env/lib/python2.6/site-packages/django/forms/models.py" in save_instance 
    85.   instance.save() 
File "/env/lib/python2.6/site-packages/django/db/models/base.py" in save 
    460.   self.save_base(using=using, force_insert=force_insert, force_update=force_update) 
File "/env/lib/python2.6/site-packages/django/db/models/base.py" in save_base 
    570.     created=(not record_exists), raw=raw, using=using) 
File "/env/lib/python2.6/site-packages/django/dispatch/dispatcher.py" in send 
    172.    response = receiver(signal=self, sender=sender, **named) 
File "/myproject/myapp/models.py" in send_email_after_widget_creation 
    88.   send_mail(subject, message, from_email, recipient_list, fail_silently= not settings.DEBUG) 
File "/env/lib/python2.6/site-packages/django/core/mail/__init__.py" in send_mail 
    61.       connection=connection).send() 
File "/env/lib/python2.6/site-packages/django/core/mail/message.py" in send 
    251.   return self.get_connection(fail_silently).send_messages([self]) 
File "/env/lib/python2.6/site-packages/django/core/mail/backends/smtp.py" in send_messages 
    79.    new_conn_created = self.open() 
File "/env/lib/python2.6/site-packages/django/core/mail/backends/smtp.py" in open 
    48.     self.connection.login(self.username, self.password) 
File "/usr/lib/python2.6/smtplib.py" in login 
    574.    (code, resp) = self.docmd(encode_cram_md5(resp, user, password)) 
File "/usr/lib/python2.6/smtplib.py" in encode_cram_md5 
    537.    challenge = base64.decodestring(challenge) 
File "/usr/lib/python2.6/base64.py" in decodestring 
    321.  return binascii.a2b_base64(s) 

어떤 아이디어?

UPADTE :

주제는 (은 포르투갈어의)이었다

[Django] [FRUGAR-WiDGET] novo widget criado

몸이었다 :

Novo widget criado: 
Nome:test 10 
Por: dudu 
+0

메시지 본문의 내용은 어떻게 생깁니 까? 설명을 주신 덕분에 – buckley

답변

0

Base-64는 3 바이트 (0-255 범위의 반향)에서 4 바이트 (각각 제한된 범위의 )를 인코딩합니다. 출력의 길이는 이고 항상 인 복수 (공백은 제외)입니다. 이 메소드는 여분의 패딩 바이트 (ASCII '=')를 추가하여 입력 길이가 3이 아닌 경우이를 보장합니다.

따라서 "디인팅이 잘못된 패딩"오류가 발생하면 공백을 제거하고 여분의 ASCII '='를 추가하여 그 길이를 3의 배수로 만들고 다시 디코딩 해보십시오. (아니면 한 번만 반복해서 패드 패드를 추가하고 최대 3 번 시도하십시오.)

가장 쉬운 해결책은 패킷이 항상 4 바이트의 배수인지 확인하는 것입니다.

+0

. 이 오류를 일으키는 문제가 발견되어 이메일 주소 인증과 관련이 있습니다. – duduklein

+0

답을 답으로 입력하고 동의하면이 질문을 닫을 수 있습니다. –

0

인증에 문제가 있습니다. Django는 메일 서버로 인증 할 수 없었습니다. 일단이 문제를 해결하면 문제는 사라졌습니다.

관련 문제