django-ге поштаны жіберу - gmail smtp арқылы шығару

Мен @ www.manojmj.com қарапайым портфолио веб-сайтына ие боламын

Менде пайдаланушыларға пішінді толтырып, маған электрондық пошта арқылы жібере алатын сайтта байланыс формасы бар

Дәл қазір мен Gmail тіркелгімін джанго арқылы поштаны жіберу үшін теңшеп алдым.

Поштадағы мекен-жайдан менің мекен-жайымның орнына settings.py мекен-жайы бойынша алмасатынымды білемін, егер мен провайдер ретінде gmail-ды қолдансам және бұл туралы ешқандай жол жоқ.

Мен мұны жақсы деп есептеймін, бірақ нақты мәселе жергілікті хостта менің жобаны іске қосып жатқанда, электрондық пошталарды жақсы жібереді, бірақ оны қолданғаннан кейін мен осындай SMTP қатесін аламын.

SMTPAuthenticationError at /
(535, '5.7.8 Username and Password not accepted. Learn more at\n5.7.8      http://support.google.com/mail/bin/answer.py?answer=14257\n5.7.8 {BADCREDENTIALS}     r2sm18714441qeh.7 - gsmtp')
Request Method: POST
Request URL:    http://www.manojmj.com/
Django Version: 1.4.3
Exception Type: SMTPAuthenticationError
Exception Value:    
(535, '5.7.8 Username and Password not accepted. Learn more at\n5.7.8     http://support.google.com/mail/bin/answer.py?answer=14257\n5.7.8 {BADCREDENTIALS}   r2sm18714441qeh.7 - gsmtp')
Exception Location: /app/.heroku/python/lib/python2.7/smtplib.py in login, line 613
Python Executable:  /app/.heroku/python/bin/python
Python Version: 2.7.4
Python Path:    
['/app',
 '/app/.heroku/python/bin',
 '/app/.heroku/python/lib/python2.7/site-packages/distribute-0.6.36-py2.7.egg',
 '/app/.heroku/python/lib/python2.7/site-packages/pip-1.3.1-py2.7.egg',
 '/app',
 '/app/.heroku/python/lib/python27.zip',
 '/app/.heroku/python/lib/python2.7',
 '/app/.heroku/python/lib/python2.7/plat-linux2',
 '/app/.heroku/python/lib/python2.7/lib-tk',
 '/app/.heroku/python/lib/python2.7/lib-old',
 '/app/.heroku/python/lib/python2.7/lib-dynload',
 '/app/.heroku/python/lib/python2.7/site-packages',
 '/app/.heroku/python/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg-info']
Server time:    Mon, 24 Jun 2013 00:52:42 -0500

my settings.py мекенжайындағы пошта параметрін орнатыңыз

EMAIL_USE_TLS = True
DEFAULT_FROM_EMAIL = '[email protected]'
SERVER_EMAIL = '[email protected]'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = '[email protected]'
EMAIL_HOST_PASSWORD = 'password'
EMAIL_PORT = 587

views.py файлындағы менің функциям

def home(request):
    context = RequestContext(request)
    if request.method=='POST':
        email =  request.POST.get('email')
        matter = request.POST.get('message')
        subject = request.POST.get('subject')
        subject = "This mail is from " + " "+ email +" regarding " + " " +subject
        matter = "Email = "+ " "+ email + "\n\n\n"+ matter
        if subject and matter and email:
            try:
              send_mail(subject, matter, email,['[email protected]'], fail_silently=False)
            except BadHeaderError:
                return HttpResponse("no response")
        else:
             return HttpResponse("Enter all fields")
    return render_to_response("public/index.html",context)

Сіз өзіңіздің @ manojmj.com торабын тексере аласыз

Менің сұрақтарым:

  1. Джангода электрондық пошта хабарламаларын байланыс формаларынан жіберудің басқа жолы жоқ па?
  2. Егер жоқ болса, smtp қатесін қалай жоюға болады?
1
Gmail өте қатаң қауіпсіздікке ие. Сондықтан сіз оны қолданған кезде, gmail IP-ді өзгертуге байланысты күдікті әрекетті анықтады. Бәлкім, сізде бұл жерде сценарий бар. Сіздің браузеріңіздегі gmail-ге кіруге тырысыңыз және ол сізге captcha көрсете ме, жоқ па?
қосылды автор Aamir Adnan, көзі
Gmail өте қатаң қауіпсіздікке ие. Сондықтан сіз оны қолданған кезде, gmail IP-ді өзгертуге байланысты күдікті әрекетті анықтады. Бәлкім, сізде бұл жерде сценарий бар. Сіздің браузеріңіздегі gmail-ге кіруге тырысыңыз және ол сізге captcha көрсете ме, жоқ па?
қосылды автор Aamir Adnan, көзі
Gmail өте қатаң қауіпсіздікке ие. Сондықтан сіз оны қолданған кезде, gmail IP-ді өзгертуге байланысты күдікті әрекетті анықтады. Бәлкім, сізде бұл жерде сценарий бар. Сіздің браузеріңіздегі gmail-ге кіруге тырысыңыз және ол сізге captcha көрсете ме, жоқ па?
қосылды автор Aamir Adnan, көзі

6 жауаптар

бұл міндетті түрде жұмыс істейтін болады

class Mail:
def send_mail(self, message):

    import smtplib
    from email.MIMEMultipart import MIMEMultipart
    from email.MIMEText import MIMEText

    gmailUser = '[email protected]'
    gmailPassword = 'abc123'
    recipient = '[email protected]'

    msg = MIMEMultipart()
    msg['From'] = gmailUser
    msg['To'] = recipient
    msg['Subject'] = "Success of mail "
    msg.attach(MIMEText(message))

    mailServer = smtplib.SMTP('smtp.gmail.com', 587)
    mailServer.ehlo()
    mailServer.starttls()
    mailServer.ehlo()
    mailServer.login(gmailUser, gmailPassword)
    mailServer.sendmail(gmailUser, recipient, msg.as_string())
    mailServer.close()


m = Mail()
m.send_mail('your messgae')

бұл сіздің мәселеңізді шешетініне сенемін

1
қосылды

бұл міндетті түрде жұмыс істейтін болады

class Mail:
def send_mail(self, message):

    import smtplib
    from email.MIMEMultipart import MIMEMultipart
    from email.MIMEText import MIMEText

    gmailUser = '[email protected]'
    gmailPassword = 'abc123'
    recipient = '[email protected]'

    msg = MIMEMultipart()
    msg['From'] = gmailUser
    msg['To'] = recipient
    msg['Subject'] = "Success of mail "
    msg.attach(MIMEText(message))

    mailServer = smtplib.SMTP('smtp.gmail.com', 587)
    mailServer.ehlo()
    mailServer.starttls()
    mailServer.ehlo()
    mailServer.login(gmailUser, gmailPassword)
    mailServer.sendmail(gmailUser, recipient, msg.as_string())
    mailServer.close()


m = Mail()
m.send_mail('your messgae')

бұл сіздің мәселеңізді шешетініне сенемін

1
қосылды

бұл міндетті түрде жұмыс істейтін болады

class Mail:
def send_mail(self, message):

    import smtplib
    from email.MIMEMultipart import MIMEMultipart
    from email.MIMEText import MIMEText

    gmailUser = '[email protected]'
    gmailPassword = 'abc123'
    recipient = '[email protected]'

    msg = MIMEMultipart()
    msg['From'] = gmailUser
    msg['To'] = recipient
    msg['Subject'] = "Success of mail "
    msg.attach(MIMEText(message))

    mailServer = smtplib.SMTP('smtp.gmail.com', 587)
    mailServer.ehlo()
    mailServer.starttls()
    mailServer.ehlo()
    mailServer.login(gmailUser, gmailPassword)
    mailServer.sendmail(gmailUser, recipient, msg.as_string())
    mailServer.close()


m = Mail()
m.send_mail('your messgae')

бұл сіздің мәселеңізді шешетініне сенемін

1
қосылды

Бұл параметрлер мен үшін Gmail арқылы жұмыс істейді:

import os

# EMAIL Settings
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = os.environ['ric_email_user']
EMAIL_HOST_PASSWORD = os.environ['ric_email_pw']
EMAIL_PORT = 587
1
қосылды

Бұл параметрлер мен үшін Gmail арқылы жұмыс істейді:

import os

# EMAIL Settings
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = os.environ['ric_email_user']
EMAIL_HOST_PASSWORD = os.environ['ric_email_pw']
EMAIL_PORT = 587
1
қосылды

Бұл параметрлер мен үшін Gmail арқылы жұмыс істейді:

import os

# EMAIL Settings
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = os.environ['ric_email_user']
EMAIL_HOST_PASSWORD = os.environ['ric_email_pw']
EMAIL_PORT = 587
1
қосылды