From a103eaa93ed4b29c9703b18792eb85d7e229c788 Mon Sep 17 00:00:00 2001 From: Burhan Khalid Date: Wed, 8 Jul 2015 01:12:51 +0300 Subject: [PATCH] Adding support for maildump for local development (replaces the nice, but not friendly console email handler) --- {{cookiecutter.repo_name}}/Gruntfile.js | 19 +++++++++++++++++-- {{cookiecutter.repo_name}}/README.rst | 19 +++++++++++++++++++ .../config/settings/local.py | 2 -- .../requirements/local.txt | 3 +++ 4 files changed, 39 insertions(+), 4 deletions(-) diff --git a/{{cookiecutter.repo_name}}/Gruntfile.js b/{{cookiecutter.repo_name}}/Gruntfile.js index ba14b1e4..09d2da9c 100644 --- a/{{cookiecutter.repo_name}}/Gruntfile.js +++ b/{{cookiecutter.repo_name}}/Gruntfile.js @@ -21,7 +21,8 @@ module.exports = function (grunt) { fonts: this.app + '/static/fonts', images: this.app + '/static/images', js: this.app + '/static/js', - manageScript: 'manage.py' + manageScript: 'manage.py', + mailserverpid: 'mailserver.pid', } }; @@ -82,7 +83,13 @@ module.exports = function (grunt) { }, runDjango: { cmd: 'python <%= paths.manageScript %> runserver' - } + }, + runMailDump: { + cmd: 'maildump -p <%= paths.mailserverpid %>' + }, + stopMailDump: { + cmd: 'maildump -p <%= paths.mailserverpid %> --stop' + }, } }); @@ -98,4 +105,12 @@ module.exports = function (grunt) { grunt.registerTask('default', [ 'build' ]); + + grunt.registerTask('start-email-server', [ + 'bgShell:runMailDump' + ]); + + grunt.registerTask('stop-email-server', [ + 'bgShell:stopMailDump' + ]); }; diff --git a/{{cookiecutter.repo_name}}/README.rst b/{{cookiecutter.repo_name}}/README.rst index 54c3d305..b3e70d52 100644 --- a/{{cookiecutter.repo_name}}/README.rst +++ b/{{cookiecutter.repo_name}}/README.rst @@ -127,6 +127,25 @@ To run a celery worker: Please note: For Celerys import magic to work, it is important *where* the celery commands are run. If you are in the same folder with *manage.py*, you should be right. {% endif %} +Email Server +^^^^^^^^^^^^ + +In development, it is often nice to be able to see emails that are being sent from your application. For this purpose, +a Grunt task exists to start an instance of `maildump`_ which is a local SMTP server with an online interface. + +Make sure you have nodejs installed, and then type the following:: + + $ grunt start-email-server + +This will start an email server. The project is setup to deliver to the email server by default. To view messages +that are sent by your application, open your browser to http://127.0.0.1:1080 + +To stop the email server:: + + $ grunt stop-email-server + +The email server listens on 127.0.0.1:1025 + It's time to write the code!!! diff --git a/{{cookiecutter.repo_name}}/config/settings/local.py b/{{cookiecutter.repo_name}}/config/settings/local.py index 2124fcc6..f1342867 100644 --- a/{{cookiecutter.repo_name}}/config/settings/local.py +++ b/{{cookiecutter.repo_name}}/config/settings/local.py @@ -25,8 +25,6 @@ SECRET_KEY = env("DJANGO_SECRET_KEY", default='CHANGEME!!!') # ------------------------------------------------------------------------------ EMAIL_HOST = 'localhost' EMAIL_PORT = 1025 -EMAIL_BACKEND = env('DJANGO_EMAIL_BACKEND', - default='django.core.mail.backends.console.EmailBackend') # CACHING # ------------------------------------------------------------------------------ diff --git a/{{cookiecutter.repo_name}}/requirements/local.txt b/{{cookiecutter.repo_name}}/requirements/local.txt index ea21f87a..d7b3da04 100644 --- a/{{cookiecutter.repo_name}}/requirements/local.txt +++ b/{{cookiecutter.repo_name}}/requirements/local.txt @@ -10,3 +10,6 @@ django-debug-toolbar==1.3.2 # improved REPL ipdb==0.8.1 + +# maildump +maildump==0.5.1