关于django框架发送邮件的问题(高手过来看!)
我要用django实现发送邮件的功能,但是报了个错误“STARTTLS extension not supported by server”,请往下看,请大家帮分析下原因:
问题如下:
1. 首先我在本地搭建了一个邮件服务器,并且使用测试账号admin@192.com(192.com是邮箱的域名,在本地配置host就可访问)可以用foxmail进行邮件收发。
2. setting文件中关于邮件部分的设置是
EMAIL_HOST='192.com'
EMAIL_PORT='25'
EMAIL_HOST_USER='admin'
EMAIL_HOST_PASSWORD='Admin123'
EMAIL_USE_TLS=True
SERVER_EMAIL = EMAIL_HOST_USER
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
views的发送邮件代码是
def contact(request):
if request.method == 'POST':
form = ContactForm(request.POST)
if form.is_valid():
topic = form.cleaned_data['topic']
message = form.cleaned_data['message']
sender = form.cleaned_data.get('sender', 'admin@192.com')
send_mail(
'Feedback from your site, topic: %s' % topic,
message, sender,['admin@192.com']
)
return HttpResponseRedirect('/admin/')
else:
form = ContactForm()
return render_to_response('contact.html', {'form': form})
然后提交form表单后页面报以下错误:
SMTPException at /contact/
STARTTLS extension not supported by server.Request Method: POST
Request URL: http://127.0.0.1:8000/contact/
Django Version: 1.3
Exception Type: SMTPException
Exception Value: STARTTLS extension not supported by server.
Exception Location: C:\Python27\lib\smtplib.py in starttls, line 626
Python Executable: C:\Python27\python.exe
Python Version: 2.7.2
Request information
GET
No GET data
POST
Variable Value
topic u'general'
csrfmiddlewaretoken u'97a9c0f73b6e95a06df9b56859f13a49'
message u'Replace with your feedback'
sender u''
META
Variable Value
TMP 'C:\\DOCUME~1\\ADMINI~1\\LOCALS~1\\Temp'
COMPUTERNAME 'MICROSOF-BB7784'
wsgi.multiprocess False
RUN_MAIN 'true'
1830B7BD-F7A3-4C4D-989B-C004DE465EDE '10c:2556e48'
USERDOMAIN 'MICROSOF-BB7784'
SERVER_PROTOCOL 'HTTP/1.1'
SERVER_SOFTWARE 'WSGIServer/0.1 Python/2.7.2'
SCRIPT_NAME u''
COMMONPROGRAMFILES 'C:\\Program Files\\Common Files'
PROCESSOR_IDENTIFIER 'x86 Family 6 Model 23 Stepping 10, GenuineIntel'
REQUEST_METHOD 'POST'
PROGRAMFILES 'C:\\Program Files'
PROCESSOR_REVISION '170a'
LR_PATH 'C:\\Program Files\\HP\\LoadRunner\\'
QUERY_STRING ''
PATH 'C:\\Python27\\;C:\\Python27\\Scripts;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\Program Files\\Common Files\\Thunder Network\\KanKan\\Codecs;C:\\Python27;C:\\Program Files\\WinMerge;c:\\aaa\\;%APPDATA%\\Python\\Scripts'
wsgi.errors <open file '<stderr>', mode 'w' at 0x00AB50D0>
CONTENT_LENGTH '109'
LOGGER_CONFIG_PATH 'C:\\Program Files\\HP\\LoadRunner\\dat\\ltlogconf.xml'
HTTP_CONNECTION 'Keep-Alive'
HTTP_REFERER 'http://127.0.0.1:8000/contact/'
TEMP 'C:\\DOCUME~1\\ADMINI~1\\LOCALS~1\\Temp'
REMOTE_ADDR '127.0.0.1'
PROCESSOR_ARCHITECTURE 'x86'
wsgi.url_scheme 'http'
ALLUSERSPROFILE 'C:\\Documents and Settings\\All Users'
SERVER_PORT '8000'
SESSIONNAME 'Console'
HOMEPATH '\\Documents and Settings\\Administrator'
PROCESSOR_LEVEL '6'
LG_PATH 'C:\\Program Files\\HP\\LoadRunner\\'
USERNAME 'Administrator'
HTTP_ACCEPT 'image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-shockwave-flash, application/msword, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, */*'
LOGONSERVER '\\\\MICROSOF-BB7784'
PROMPT '$P$G'
COMSPEC 'C:\\WINDOWS\\system32\\cmd.exe'
SYSTEMROOT 'C:\\WINDOWS'
PYTHONPATH 'D:\\Backup\\\xce\xd2\xb5\xc4\xce\xc4\xb5\xb5;D:\\Backup\\\xce\xd2\xb5\xc4\xce\xc4\xb5\xb5\\Python\\Script;C:\\Documents and Settings\\Administrator\\mysite\\test'
PATH_INFO u'/contact/'
ANALYSIS_PATH 'C:\\Program Files\\HP\\LoadRunner\\'
CSRF_COOKIE '97a9c0f73b6e95a06df9b56859f13a49'
HTTP_CACHE_CONTROL 'no-cache'
HTTP_USER_AGENT 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; InfoPath.2; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)'
HTTP_HOST '127.0.0.1:8000'
wsgi.multithread True
PATHEXT '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.py;.pyw'
ASL.LOG 'Destination=file'
FP_NO_HOST_CHECK 'NO'
WINDIR 'C:\\WINDOWS'
HTTP_ACCEPT_ENCODING 'gzip, deflate'
wsgi.version (1, 0)
HOMEDRIVE 'C:'
APPDATA 'C:\\Documents and Settings\\Administrator\\Application Data'
SERVER_NAME '192.com'
wsgi.run_once False
REMOTE_HOST ''
SYSTEMDRIVE 'C:'
GATEWAY_INTERFACE 'CGI/1.1'
HTTP_ACCEPT_LANGUAGE 'zh-cn'
wsgi.input <socket._fileobject object at 0x015170B0>
NUMBER_OF_PROCESSORS '2'
DJANGO_SETTINGS_MODULE 'mysite.settings'
CONTENT_TYPE 'application/x-www-form-urlencoded'
wsgi.file_wrapper ''
OS 'Windows_NT'
VUGEN_PATH 'C:\\Program Files\\HP\\LoadRunner\\'
Settings
Using settings module mysite.settings
Setting Value
USE_L10N True
USE_THOUSAND_SEPARATOR False
LANGUAGE_CODE 'en'
ROOT_URLCONF 'mysite.urls'
DEFAULT_CHARSET 'utf-8'
TEST_DATABASE_CHARSET None
DATABASE_HOST ''
IGNORABLE_404_STARTS ('/cgi-bin/', '/_vti_bin', '/_vti_inf')
SEND_BROKEN_LINK_EMAILS False
URL_VALIDATOR_USER_AGENT 'Django/1.3 (http://www.djangoproject.com)'
SESSION_COOKIE_DOMAIN None
SESSION_COOKIE_NAME 'sessionid'
COMMENTS_MODERATORS_GROUP None
TIME_INPUT_FORMATS ('%H:%M:%S', '%H:%M')
DATABASES {'default': {'ENGINE': 'django.db.backends.mysql',
'HOST': '192.168.33.229',
'NAME': 'mydb',
'OPTIONS': {},
'PASSWORD': '********************',
'PORT': '3306',
'TEST_CHARSET': None,
'TEST_COLLATION': None,
'TEST_MIRROR': None,
'TEST_NAME': None,
'TIME_ZONE': 'America/Chicago',
'USER': 'root'}}
TEST_DATABASE_NAME None
FILE_UPLOAD_HANDLERS ('django.core.files.uploadhandler.MemoryFileUploadHandler',
'django.core.files.uploadhandler.TemporaryFileUploadHandler')
DEFAULT_CONTENT_TYPE 'text/html'
APPEND_SLASH True
DATABASE_ROUTERS []
YEAR_MONTH_FORMAT 'F Y'
STATICFILES_STORAGE 'django.contrib.staticfiles.storage.StaticFilesStorage'
CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
'LOCATION': ''}}
SERVER_EMAIL 'admin'
SESSION_COOKIE_PATH '/'
IGNORABLE_404_ENDS ('mail.pl', 'mailform.pl', 'mail.cgi', 'mailform.cgi', 'favicon.ico', '.php')
THOUSAND_SEPARATOR ','
SECRET_KEY '********************'
LANGUAGE_COOKIE_NAME 'django_language'
FILE_UPLOAD_TEMP_DIR None
TRANSACTIONS_MANAGED False
LOGGING_CONFIG 'django.utils.log.dictConfig'
TEMPLATE_LOADERS ('django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader')
TEMPLATE_DEBUG True
AUTHENTICATION_BACKENDS ('django.contrib.auth.backends.ModelBackend',)
TEST_DATABASE_COLLATION None
FORCE_SCRIPT_NAME None
CACHE_BACKEND 'locmem://'
SESSION_COOKIE_SECURE False
CSRF_COOKIE_DOMAIN None
FILE_CHARSET 'utf-8'
DEBUG True
SESSION_FILE_PATH None
DEFAULT_FILE_STORAGE 'django.core.files.storage.FileSystemStorage'
INSTALLED_APPS ['django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
'mysite.hello']
DATABASE_ENGINE ''
DATABASE_NAME ''
COMMENTS_FIRST_FEW 0
PREPEND_WWW False
SESSION_COOKIE_HTTPONLY False
DATABASE_PORT ''
DEBUG_PROPAGATE_EXCEPTIONS False
MONTH_DAY_FORMAT 'F j'
LOGIN_URL '/accounts/login/'
SESSION_EXPIRE_AT_BROWSER_CLOSE False
TIME_FORMAT 'P'
CSRF_COOKIE_NAME 'csrftoken'
EMAIL_HOST_PASSWORD '********************'
PASSWORD_RESET_TIMEOUT_DAYS '********************'
CACHE_MIDDLEWARE_ALIAS 'default'
SESSION_SAVE_EVERY_REQUEST False
ADMIN_MEDIA_PREFIX '/static/admin/'
NUMBER_GROUPING 0
LOGIN_REDIRECT_URL '/accounts/profile/'
LOGGING {'disable_existing_loggers': False,
'handlers': {'mail_admins': {'class': 'django.utils.log.AdminEmailHandler',
'level': 'ERROR'}},
'loggers': {'django.request': {'handlers': ['mail_admins'],
'level': 'ERROR',
'propagate': True}},
'version': 1}
LOGOUT_URL '/accounts/logout/'
EMAIL_USE_TLS True
TEMPLATE_DIRS ('c:/aaa/',)
FIXTURE_DIRS ()
EMAIL_HOST '192.com'
DATE_FORMAT 'N j, Y'
MEDIA_ROOT ''
ADMINS ()
FORMAT_MODULE_PATH None
DEFAULT_FROM_EMAIL 'admin'
STATICFILES_DIRS ()
MEDIA_URL ''
DATETIME_FORMAT 'N j, Y, P'
EMAIL_SUBJECT_PREFIX '[Django] '
SITE_ID 1
DISALLOWED_USER_AGENTS ()
ALLOWED_INCLUDE_ROOTS ()
DECIMAL_SEPARATOR '.'
SHORT_DATE_FORMAT 'm/d/Y'
DATABASE_USER ''
TEST_RUNNER 'django.test.simple.DjangoTestSuiteRunner'
FILE_UPLOAD_MAX_MEMORY_SIZE 2621440
EMAIL_BACKEND 'django.core.mail.backends.smtp.EmailBackend'
DEFAULT_TABLESPACE ''
SESSION_COOKIE_AGE 1209600
SETTINGS_MODULE 'mysite.settings'
USE_ETAGS False
LANGUAGES_BIDI ('he', 'ar', 'fa')
DEFAULT_INDEX_TABLESPACE ''
INTERNAL_IPS ()
STATIC_URL '/static/'
EMAIL_PORT '25'
SHORT_DATETIME_FORMAT 'm/d/Y P'
ABSOLUTE_URL_OVERRIDES {}
DATABASE_OPTIONS {}
CACHE_MIDDLEWARE_SECONDS 600
BANNED_IPS ()
DATABASE_PASSWORD '********************'
ADMIN_FOR ()
COMMENTS_BANNED_USERS_GROUP None
EMAIL_HOST_USER 'admin'
PROFANITIES_LIST '********************'