Coder Social home page Coder Social logo

vitorfs / colossus Goto Github PK

View Code? Open in Web Editor NEW
491.0 32.0 127.0 34.06 MB

Self-hosted email marketing solution

Home Page: https://colossus.readthedocs.io

License: MIT License

Python 68.89% HTML 30.22% CSS 0.17% Shell 0.32% JavaScript 0.40%
django mailing email-marketing python python3 mailing-list automation email-automation

colossus's Introduction

Colossus

Build Status codecov Documentation Status

Self-hosted email marketing solution. Compatible with any SMTP email service.

One-click deploy to Heroku:

Deploy

Screenshots

Colossus new campaign

Colossus campaigns

More Colossus screenshots.

Features

  • Create and manage multiple mailing lists;
  • Import lists from other providers (csv files or paste email addresses);
  • Create reusable email templates;
  • Customize sign up pages (subscribe, unsubscribe, thank you page, etc.);
  • Default double opt-in for sign ups;
  • Schedule email campaign to send on a specific date and time;
  • Track email opens and clicks;
  • Change link URL after email is sent;
  • Reports with geolocation;
  • Compatible with Mailgun, SendGrid, Mandrill, or any other SMTP email service.

Quickstart

If you want to have a quick look or just run the project locally, you can get started by either forking this repository or just cloning it directly:

git clone [email protected]:vitorfs/colossus.git

Ideally, create a virtualenv and install the projects dependencies:

pip install -r requirements/development.txt

Create a local database:

python manage.py migrate

Start development server:

python manage.py runserver

Open your browser and access the setup page to create an admin account:

http://127.0.0.1:8000/setup/

PS: Campaign scheduling will not work out-of-the-box. You need to install a message broker and setup Celery properly.

Tech Specs

  • Python 3.6
  • Django 2.1
  • PostgreSQL 10
  • Celery 4.2
  • RabbitMQ 3.7
  • Bootstrap 4
  • jQuery 3.3

PostgreSQL and RabbitMQ are soft dependencies. Other databases (supported by Django) can easily be used as well as other message broker compatible with Celery.

The jQuery library is more of a Bootstrap dependency. There is very little JavaScript code in the project. For the most part the code base is just plain Django and HTML templates.

Complete list of Python dependencies can be found in the requirements files.

Documentation

This is just a pre-release of the project and I still have to work on a proper documentation and user guides.

For now you will only find documentation of the internal APIs in the source code.

colossus.readthedocs.io

Who's using Colossus?

Right now just myself. I'm currently using it for my blog newsletter at simpleisbetterthancomplex.com.

Here is how my sign up page looks like: sibt.co/newsletter

License

The source code is released under the MIT License.

colossus's People

Contributors

simo97 avatar vitorfs avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

colossus's Issues

Documentation

Please make some documentation. How does it compare with Mautic? It would be great to have similar tool written in Python! :)

Need help with celery/rabbitmq configuration

I recently setup colossus. And the main web app works great! Thanks for building this.

I installed and ran rabbitmq as instructed but for some reason I am not able to get celery to talk to rabbitmq to schedule and send emails. Any documentation or links on how I could setup this up?

Thanks a lot!

List Short Url

Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens.

Mailgun issue

Using MailGun SMTP, Gmail recipients do receive the campaigns, but custom domains and hotmail email addresses don't receive campaigns.

Does this happen to anyone ?

SMTP credentials setting not working

the SMTP credentials setting inside mailing list does not work , i mean the host user and password get stored in the database but django doesn't use that data for email host user and password . what to do now?? how to fix this problem ?? i want to dynamically change the email setting after the app is hosted online

Gmail SMTP not working

I tried using Gmail SMTP but nothing happens. Any idea ?

EMAIL_SUBJECT_PREFIX` = '[Colossus] '

SERVER_EMAIL = config('SERVER_EMAIL', default='[email protected]')

DEFAULT_FROM_EMAIL = config('DEFAULT_FROM_EMAIL', default='[email protected]')

EMAIL_BACKEND = config('EMAIL_BACKEND', default='django.core.mail.backends.console.EmailBackend')

EMAIL_HOST = config('EMAIL_HOST', default='smtp.gmail.com')

EMAIL_PORT = config('EMAIL_PORT', default=465, cast=int)

EMAIL_HOST_USER = config('EMAIL_HOST_USER', default='[email protected]')

EMAIL_HOST_PASSWORD = config('EMAIL_HOST_PASSWORD', default='myPassword')

EMAIL_USE_TLS = config('EMAIL_USE_TLS', default=True, cast=bool)

Read only templates

Add boolean field to EmailTemplate model.

  • Basic simple text email template
  • Basic sign up pages

Perhaps consider renaming the EmailTemplate model.

Can't import CSV or paste subscribers on local server

image

When I try to paste email addresses :

Request Method: | POST
-- | --
http://127.0.0.1:8000/lists/3/subscribers/import/paste/
2.1
IntegrityError
NOT NULL constraint failed: colossus_subscribers.domain_id
/usr/local/lib/python3.7/site-packages/django/db/backends/sqlite3/base.py in execute, line 296
/usr/local/opt/python/bin/python3.7
3.7.0
['/Users/alex/Desktop/Colossus',  '/usr/local/Cellar/python/3.7.0/Frameworks/Python.framework/Versions/3.7/lib/python37.zip',  '/usr/local/Cellar/python/3.7.0/Frameworks/Python.framework/Versions/3.7/lib/python3.7',  '/usr/local/Cellar/python/3.7.0/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload',  '/usr/local/lib/python3.7/site-packages',  '/Users/alex/Desktop/Colossus']
Thu, 27 Sep 2018 11:26:27 +0000

Error :: unable to install requirements

Getting many of these errors while running command


pip install -r requirements/development.txt

Any solution

Building wheel for psycopg2-binary (setup.py) ... error
ERROR: Command errored out with exit status 1:
command: /usr/local/bin/python3.9 -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-3m9k2s8f/psycopg2-binary_d02a87e256d34a7784aaf2664fa971e6/setup.py'"'"'; file='"'"'/tmp/pip-install-3m9k2s8f/psycopg2-binary_d02a87e256d34a7784aaf2664fa971e6/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(file) if os.path.exists(file) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-kovbjbw4
cwd: /tmp/pip-install-3m9k2s8f/psycopg2-binary_d02a87e256d34a7784aaf2664fa971e6/
Complete output (86 lines):
running bdist_wheel
running build
running build_py
creating build
creating build/lib.linux-x86_64-3.9
creating build/lib.linux-x86_64-3.9/psycopg2
copying lib/_range.py -> build/lib.linux-x86_64-3.9/psycopg2
copying lib/tz.py -> build/lib.linux-x86_64-3.9/psycopg2
copying lib/_ipaddress.py -> build/lib.linux-x86_64-3.9/psycopg2
copying lib/_json.py -> build/lib.linux-x86_64-3.9/psycopg2
copying lib/extras.py -> build/lib.linux-x86_64-3.9/psycopg2
copying lib/pool.py -> build/lib.linux-x86_64-3.9/psycopg2
copying lib/init.py -> build/lib.linux-x86_64-3.9/psycopg2
copying lib/psycopg1.py -> build/lib.linux-x86_64-3.9/psycopg2
copying lib/sql.py -> build/lib.linux-x86_64-3.9/psycopg2
copying lib/extensions.py -> build/lib.linux-x86_64-3.9/psycopg2
copying lib/errorcodes.py -> build/lib.linux-x86_64-3.9/psycopg2
creating build/lib.linux-x86_64-3.9/psycopg2/tests
copying tests/test_notify.py -> build/lib.linux-x86_64-3.9/psycopg2/tests
copying tests/test_bugX000.py -> build/lib.linux-x86_64-3.9/psycopg2/tests
copying tests/testutils.py -> build/lib.linux-x86_64-3.9/psycopg2/tests
copying tests/test_with.py -> build/lib.linux-x86_64-3.9/psycopg2/tests
copying tests/test_errcodes.py -> build/lib.linux-x86_64-3.9/psycopg2/tests
copying tests/test_sql.py -> build/lib.linux-x86_64-3.9/psycopg2/tests
copying tests/test_types_basic.py -> build/lib.linux-x86_64-3.9/psycopg2/tests
copying tests/dbapi20.py -> build/lib.linux-x86_64-3.9/psycopg2/tests
copying tests/test_module.py -> build/lib.linux-x86_64-3.9/psycopg2/tests
copying tests/test_copy.py -> build/lib.linux-x86_64-3.9/psycopg2/tests
copying tests/test_replication.py -> build/lib.linux-x86_64-3.9/psycopg2/tests
copying tests/test_cancel.py -> build/lib.linux-x86_64-3.9/psycopg2/tests
copying tests/test_psycopg2_dbapi20.py -> build/lib.linux-x86_64-3.9/psycopg2/tests
copying tests/test_bug_gc.py -> build/lib.linux-x86_64-3.9/psycopg2/tests
copying tests/test_quote.py -> build/lib.linux-x86_64-3.9/psycopg2/tests
copying tests/test_cursor.py -> build/lib.linux-x86_64-3.9/psycopg2/tests
copying tests/test_async_keyword.py -> build/lib.linux-x86_64-3.9/psycopg2/tests
copying tests/init.py -> build/lib.linux-x86_64-3.9/psycopg2/tests
copying tests/test_ipaddress.py -> build/lib.linux-x86_64-3.9/psycopg2/tests
copying tests/test_fast_executemany.py -> build/lib.linux-x86_64-3.9/psycopg2/tests
copying tests/testconfig.py -> build/lib.linux-x86_64-3.9/psycopg2/tests
copying tests/dbapi20_tpc.py -> build/lib.linux-x86_64-3.9/psycopg2/tests
copying tests/test_extras_dictcursor.py -> build/lib.linux-x86_64-3.9/psycopg2/tests
copying tests/test_connection.py -> build/lib.linux-x86_64-3.9/psycopg2/tests
copying tests/test_lobject.py -> build/lib.linux-x86_64-3.9/psycopg2/tests
copying tests/test_transaction.py -> build/lib.linux-x86_64-3.9/psycopg2/tests
copying tests/test_types_extras.py -> build/lib.linux-x86_64-3.9/psycopg2/tests
copying tests/test_dates.py -> build/lib.linux-x86_64-3.9/psycopg2/tests
copying tests/test_green.py -> build/lib.linux-x86_64-3.9/psycopg2/tests
copying tests/test_async.py -> build/lib.linux-x86_64-3.9/psycopg2/tests
Skipping optional fixer: buffer
Skipping optional fixer: idioms
Skipping optional fixer: set_literal
Skipping optional fixer: ws_comma
running build_ext
building 'psycopg2._psycopg' extension
creating build/temp.linux-x86_64-3.9
creating build/temp.linux-x86_64-3.9/psycopg
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION=2.7.6.1 (dt dec pq3 ext lo64) -DPG_VERSION_NUM=130003 -DHAVE_LO64=1 -I/usr/local/include/python3.9 -I. -I/usr/include/postgresql -I/usr/include/postgresql/13/server -c psycopg/adapter_asis.c -o build/temp.linux-x86_64-3.9/psycopg/adapter_asis.o -Wdeclaration-after-statement
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION=2.7.6.1 (dt dec pq3 ext lo64) -DPG_VERSION_NUM=130003 -DHAVE_LO64=1 -I/usr/local/include/python3.9 -I. -I/usr/include/postgresql -I/usr/include/postgresql/13/server -c psycopg/adapter_binary.c -o build/temp.linux-x86_64-3.9/psycopg/adapter_binary.o -Wdeclaration-after-statement
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION=2.7.6.1 (dt dec pq3 ext lo64) -DPG_VERSION_NUM=130003 -DHAVE_LO64=1 -I/usr/local/include/python3.9 -I. -I/usr/include/postgresql -I/usr/include/postgresql/13/server -c psycopg/adapter_datetime.c -o build/temp.linux-x86_64-3.9/psycopg/adapter_datetime.o -Wdeclaration-after-statement
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION=2.7.6.1 (dt dec pq3 ext lo64) -DPG_VERSION_NUM=130003 -DHAVE_LO64=1 -I/usr/local/include/python3.9 -I. -I/usr/include/postgresql -I/usr/include/postgresql/13/server -c psycopg/adapter_list.c -o build/temp.linux-x86_64-3.9/psycopg/adapter_list.o -Wdeclaration-after-statement
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION=2.7.6.1 (dt dec pq3 ext lo64) -DPG_VERSION_NUM=130003 -DHAVE_LO64=1 -I/usr/local/include/python3.9 -I. -I/usr/include/postgresql -I/usr/include/postgresql/13/server -c psycopg/adapter_pboolean.c -o build/temp.linux-x86_64-3.9/psycopg/adapter_pboolean.o -Wdeclaration-after-statement
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION=2.7.6.1 (dt dec pq3 ext lo64) -DPG_VERSION_NUM=130003 -DHAVE_LO64=1 -I/usr/local/include/python3.9 -I. -I/usr/include/postgresql -I/usr/include/postgresql/13/server -c psycopg/adapter_pdecimal.c -o build/temp.linux-x86_64-3.9/psycopg/adapter_pdecimal.o -Wdeclaration-after-statement
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION=2.7.6.1 (dt dec pq3 ext lo64) -DPG_VERSION_NUM=130003 -DHAVE_LO64=1 -I/usr/local/include/python3.9 -I. -I/usr/include/postgresql -I/usr/include/postgresql/13/server -c psycopg/adapter_pfloat.c -o build/temp.linux-x86_64-3.9/psycopg/adapter_pfloat.o -Wdeclaration-after-statement
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION=2.7.6.1 (dt dec pq3 ext lo64) -DPG_VERSION_NUM=130003 -DHAVE_LO64=1 -I/usr/local/include/python3.9 -I. -I/usr/include/postgresql -I/usr/include/postgresql/13/server -c psycopg/adapter_pint.c -o build/temp.linux-x86_64-3.9/psycopg/adapter_pint.o -Wdeclaration-after-statement
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION=2.7.6.1 (dt dec pq3 ext lo64) -DPG_VERSION_NUM=130003 -DHAVE_LO64=1 -I/usr/local/include/python3.9 -I. -I/usr/include/postgresql -I/usr/include/postgresql/13/server -c psycopg/adapter_qstring.c -o build/temp.linux-x86_64-3.9/psycopg/adapter_qstring.o -Wdeclaration-after-statement
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION=2.7.6.1 (dt dec pq3 ext lo64) -DPG_VERSION_NUM=130003 -DHAVE_LO64=1 -I/usr/local/include/python3.9 -I. -I/usr/include/postgresql -I/usr/include/postgresql/13/server -c psycopg/bytes_format.c -o build/temp.linux-x86_64-3.9/psycopg/bytes_format.o -Wdeclaration-after-statement
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION=2.7.6.1 (dt dec pq3 ext lo64) -DPG_VERSION_NUM=130003 -DHAVE_LO64=1 -I/usr/local/include/python3.9 -I. -I/usr/include/postgresql -I/usr/include/postgresql/13/server -c psycopg/connection_int.c -o build/temp.linux-x86_64-3.9/psycopg/connection_int.o -Wdeclaration-after-statement
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION=2.7.6.1 (dt dec pq3 ext lo64) -DPG_VERSION_NUM=130003 -DHAVE_LO64=1 -I/usr/local/include/python3.9 -I. -I/usr/include/postgresql -I/usr/include/postgresql/13/server -c psycopg/connection_type.c -o build/temp.linux-x86_64-3.9/psycopg/connection_type.o -Wdeclaration-after-statement
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION=2.7.6.1 (dt dec pq3 ext lo64) -DPG_VERSION_NUM=130003 -DHAVE_LO64=1 -I/usr/local/include/python3.9 -I. -I/usr/include/postgresql -I/usr/include/postgresql/13/server -c psycopg/cursor_int.c -o build/temp.linux-x86_64-3.9/psycopg/cursor_int.o -Wdeclaration-after-statement
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION=2.7.6.1 (dt dec pq3 ext lo64) -DPG_VERSION_NUM=130003 -DHAVE_LO64=1 -I/usr/local/include/python3.9 -I. -I/usr/include/postgresql -I/usr/include/postgresql/13/server -c psycopg/cursor_type.c -o build/temp.linux-x86_64-3.9/psycopg/cursor_type.o -Wdeclaration-after-statement
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION=2.7.6.1 (dt dec pq3 ext lo64) -DPG_VERSION_NUM=130003 -DHAVE_LO64=1 -I/usr/local/include/python3.9 -I. -I/usr/include/postgresql -I/usr/include/postgresql/13/server -c psycopg/diagnostics_type.c -o build/temp.linux-x86_64-3.9/psycopg/diagnostics_type.o -Wdeclaration-after-statement
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION=2.7.6.1 (dt dec pq3 ext lo64) -DPG_VERSION_NUM=130003 -DHAVE_LO64=1 -I/usr/local/include/python3.9 -I. -I/usr/include/postgresql -I/usr/include/postgresql/13/server -c psycopg/error_type.c -o build/temp.linux-x86_64-3.9/psycopg/error_type.o -Wdeclaration-after-statement
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION=2.7.6.1 (dt dec pq3 ext lo64) -DPG_VERSION_NUM=130003 -DHAVE_LO64=1 -I/usr/local/include/python3.9 -I. -I/usr/include/postgresql -I/usr/include/postgresql/13/server -c psycopg/green.c -o build/temp.linux-x86_64-3.9/psycopg/green.o -Wdeclaration-after-statement
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION=2.7.6.1 (dt dec pq3 ext lo64) -DPG_VERSION_NUM=130003 -DHAVE_LO64=1 -I/usr/local/include/python3.9 -I. -I/usr/include/postgresql -I/usr/include/postgresql/13/server -c psycopg/libpq_support.c -o build/temp.linux-x86_64-3.9/psycopg/libpq_support.o -Wdeclaration-after-statement
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION=2.7.6.1 (dt dec pq3 ext lo64) -DPG_VERSION_NUM=130003 -DHAVE_LO64=1 -I/usr/local/include/python3.9 -I. -I/usr/include/postgresql -I/usr/include/postgresql/13/server -c psycopg/lobject_int.c -o build/temp.linux-x86_64-3.9/psycopg/lobject_int.o -Wdeclaration-after-statement
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION=2.7.6.1 (dt dec pq3 ext lo64) -DPG_VERSION_NUM=130003 -DHAVE_LO64=1 -I/usr/local/include/python3.9 -I. -I/usr/include/postgresql -I/usr/include/postgresql/13/server -c psycopg/lobject_type.c -o build/temp.linux-x86_64-3.9/psycopg/lobject_type.o -Wdeclaration-after-statement
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION=2.7.6.1 (dt dec pq3 ext lo64) -DPG_VERSION_NUM=130003 -DHAVE_LO64=1 -I/usr/local/include/python3.9 -I. -I/usr/include/postgresql -I/usr/include/postgresql/13/server -c psycopg/microprotocols.c -o build/temp.linux-x86_64-3.9/psycopg/microprotocols.o -Wdeclaration-after-statement
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION=2.7.6.1 (dt dec pq3 ext lo64) -DPG_VERSION_NUM=130003 -DHAVE_LO64=1 -I/usr/local/include/python3.9 -I. -I/usr/include/postgresql -I/usr/include/postgresql/13/server -c psycopg/microprotocols_proto.c -o build/temp.linux-x86_64-3.9/psycopg/microprotocols_proto.o -Wdeclaration-after-statement
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION=2.7.6.1 (dt dec pq3 ext lo64) -DPG_VERSION_NUM=130003 -DHAVE_LO64=1 -I/usr/local/include/python3.9 -I. -I/usr/include/postgresql -I/usr/include/postgresql/13/server -c psycopg/notify_type.c -o build/temp.linux-x86_64-3.9/psycopg/notify_type.o -Wdeclaration-after-statement
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION=2.7.6.1 (dt dec pq3 ext lo64) -DPG_VERSION_NUM=130003 -DHAVE_LO64=1 -I/usr/local/include/python3.9 -I. -I/usr/include/postgresql -I/usr/include/postgresql/13/server -c psycopg/pqpath.c -o build/temp.linux-x86_64-3.9/psycopg/pqpath.o -Wdeclaration-after-statement
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION=2.7.6.1 (dt dec pq3 ext lo64) -DPG_VERSION_NUM=130003 -DHAVE_LO64=1 -I/usr/local/include/python3.9 -I. -I/usr/include/postgresql -I/usr/include/postgresql/13/server -c psycopg/psycopgmodule.c -o build/temp.linux-x86_64-3.9/psycopg/psycopgmodule.o -Wdeclaration-after-statement
psycopg/psycopgmodule.c: In function ‘psyco_is_main_interp’:
psycopg/psycopgmodule.c:689:18: error: dereferencing pointer to incomplete type ‘PyInterpreterState’ {aka ‘struct _is’}
689 | while (interp->next)
| ^~
error: command '/usr/bin/gcc' failed with exit code 1

ERROR: Failed building wheel for psycopg2-binary
Running setup.py clean for psycopg2-binary
Building wheel for python-decouple (setup.py) ... done
Created wheel for python-decouple: filename=python_decouple-3.1-py3-none-any.whl size=7916 sha256=8482e86bc663c9abbefac94b0cca1c74fe2b3eefff3851c544f889dfc75aec4a
Stored in directory: /home/csestack/.cache/pip/wheels/d4/41/83/3d0b292b9f5a8a5ae3d13833cd02e5c029ab41df830355b682
Building wheel for coverage (setup.py) ... done
Created wheel for coverage: filename=coverage-4.5.2-cp39-cp39-linux_x86_64.whl size=214855 sha256=6fb588ff464430f1d0cf1f0d715fdd36e48ad915a08d7489df9b2f01b476bf29
Stored in directory: /home/csestack/.cache/pip/wheels/12/2f/fa/54c36031f93afcdd614a24120baa3b053ef288d731d55df6d3
Building wheel for billiard (setup.py) ... done
Created wheel for billiard: filename=billiard-3.5.0.5-py3-none-any.whl size=87880 sha256=a4134dcf6eafc1aafaa520a4de71c7297dd79f17b869724737bebb5a8754c0ea
Stored in directory: /home/csestack/.cache/pip/wheels/cc/a8/5d/8fc2e8e4255e5e33e4b3a26ade7a7385e67b4992a8b7e697f9
Building wheel for maxminddb (setup.py) ... done
Created wheel for maxminddb: filename=maxminddb-2.0.3-cp39-cp39-linux_x86_64.whl size=45850 sha256=0cbb85e62108b3ec90d2aa190231f5184e30e37e3dab1c80c09e94dac0d4ae7f
Stored in directory: /home/csestack/.cache/pip/wheels/ad/0c/82/79e41ebe67044c68a5087459a9ea7447cb0756019071318197
Building wheel for typed-ast (setup.py) ... error
ERROR: Command errored out with exit status 1:
command: /usr/local/bin/python3.9 -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-3m9k2s8f/typed-ast_13e2b13fd3284df9a746449af656e4db/setup.py'"'"'; file='"'"'/tmp/pip-install-3m9k2s8f/typed-ast_13e2b13fd3284df9a746449af656e4db/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(file) if os.path.exists(file) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-bbj2e61a
cwd: /tmp/pip-install-3m9k2s8f/typed-ast_13e2b13fd3284df9a746449af656e4db/
Complete output (24 lines):
running bdist_wheel
running build
running build_py
creating build
creating build/lib.linux-x86_64-3.9
creating build/lib.linux-x86_64-3.9/typed_ast
copying typed_ast/conversions.py -> build/lib.linux-x86_64-3.9/typed_ast
copying typed_ast/init.py -> build/lib.linux-x86_64-3.9/typed_ast
copying typed_ast/ast3.py -> build/lib.linux-x86_64-3.9/typed_ast
copying typed_ast/ast27.py -> build/lib.linux-x86_64-3.9/typed_ast
running build_ext
building '_ast27' extension
creating build/temp.linux-x86_64-3.9
creating build/temp.linux-x86_64-3.9/ast27
creating build/temp.linux-x86_64-3.9/ast27/Custom
creating build/temp.linux-x86_64-3.9/ast27/Parser
creating build/temp.linux-x86_64-3.9/ast27/Python
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast27/Include -I/usr/local/include/python3.9 -c ast27/Custom/typed_ast.c -o build/temp.linux-x86_64-3.9/ast27/Custom/typed_ast.o
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast27/Include -I/usr/local/include/python3.9 -c ast27/Parser/acceler.c -o build/temp.linux-x86_64-3.9/ast27/Parser/acceler.o
ast27/Parser/acceler.c:13:10: fatal error: pgenheaders.h: No such file or directory
13 | #include "pgenheaders.h"
| ^~~~~~~~~~~~~~~
compilation terminated.
error: command '/usr/bin/gcc' failed with exit code 1

ERROR: Failed building wheel for typed-ast
Running setup.py clean for typed-ast
Successfully built python-decouple coverage billiard maxminddb
Failed to build psycopg2-binary typed-ast
Installing collected packages: vine, urllib3, pytz, idna, chardet, amqp, typed-ast, requests, pyflakes, pycodestyle, prompt-toolkit, mccabe, maxminddb, kombu, Faker, Django, billiard, tox, python-decouple, psycopg2-binary, mypy, isort, ipython, html2text, geoip2, flake8, factory-boy, django-ratelimit, django-debug-toolbar, django-crispy-forms, dj-database-url, coverage, celery, beautifulsoup4
Running setup.py install for typed-ast ... error
ERROR: Command errored out with exit status 1:
command: /usr/local/bin/python3.9 -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-3m9k2s8f/typed-ast_13e2b13fd3284df9a746449af656e4db/setup.py'"'"'; file='"'"'/tmp/pip-install-3m9k2s8f/typed-ast_13e2b13fd3284df9a746449af656e4db/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(file) if os.path.exists(file) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' install --record /tmp/pip-record-zeafi0cm/install-record.txt --single-version-externally-managed --user --prefix= --compile --install-headers /home/csestack/.local/include/python3.9/typed-ast
cwd: /tmp/pip-install-3m9k2s8f/typed-ast_13e2b13fd3284df9a746449af656e4db/
Complete output (24 lines):
running install
running build
running build_py
creating build
creating build/lib.linux-x86_64-3.9
creating build/lib.linux-x86_64-3.9/typed_ast
copying typed_ast/conversions.py -> build/lib.linux-x86_64-3.9/typed_ast
copying typed_ast/init.py -> build/lib.linux-x86_64-3.9/typed_ast
copying typed_ast/ast3.py -> build/lib.linux-x86_64-3.9/typed_ast
copying typed_ast/ast27.py -> build/lib.linux-x86_64-3.9/typed_ast
running build_ext
building '_ast27' extension
creating build/temp.linux-x86_64-3.9
creating build/temp.linux-x86_64-3.9/ast27
creating build/temp.linux-x86_64-3.9/ast27/Custom
creating build/temp.linux-x86_64-3.9/ast27/Parser
creating build/temp.linux-x86_64-3.9/ast27/Python
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast27/Include -I/usr/local/include/python3.9 -c ast27/Custom/typed_ast.c -o build/temp.linux-x86_64-3.9/ast27/Custom/typed_ast.o
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -Iast27/Include -I/usr/local/include/python3.9 -c ast27/Parser/acceler.c -o build/temp.linux-x86_64-3.9/ast27/Parser/acceler.o
ast27/Parser/acceler.c:13:10: fatal error: pgenheaders.h: No such file or directory
13 | #include "pgenheaders.h"
| ^~~~~~~~~~~~~~~
compilation terminated.
error: command '/usr/bin/gcc' failed with exit code 1
----------------------------------------
ERROR: Command errored out with exit status 1: /usr/local/bin/python3.9 -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-3m9k2s8f/typed-ast_13e2b13fd3284df9a746449af656e4db/setup.py'"'"'; file='"'"'/tmp/pip-install-3m9k2s8f/typed-ast_13e2b13fd3284df9a746449af656e4db/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(file) if os.path.exists(file) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' install --record /tmp/pip-record-zeafi0cm/install-record.txt --single-version-externally-managed --user --prefix= --compile --install-headers /home/csestack/.local/include/python3.9/typed-ast Check the logs for full command output.
12:29 ~/colossus (master)$ pip install -r requirements

Email Not Sending

Hi there. I followed your instruction from the blog on connecting the domain to mailgun and ensured everything is set up properly. I can send emails manually with swaks.

However, I edited the "Emails" portion in settings.py and it seems nothing I do can make it work. The following is a screenshot of my code. Can you please give some insight?

Screen Shot 2021-03-18 at 6 19 09 PM

Is Colossus under active development?

I am evaluating mail list managers for a large client. Is Colossus being actively developed and supported? If we have installation difficulties, can we get help?

Thanks!

SMTP configuration

Hi vitor I luv u r blog, I'm new to Django.I tried to configure the SMTP credentials with my gmail account but it shows the following error

(534, b'5.7.14 <https://accounts.google.com/signin/continue?sarp=1&scc=1&plt=AKgnsbs7\n5.7.14 2l5c6kcSl2yytD4zgorjL0Q3EqDTiRku3-j6FOCGculTKd372DUbmphw_zMwXbIvycvOle\n5.7.14 8z9GVcLkfz9Sfi9Q-fsnISUFCMcIOFT0yKbkjXBM-0toUMDt0euYHmR7rwjudOiHHlIRA0\n5.7.14 szcgbeIXK37nI0cRVWGpumhvG5Bgrmn16zPldm85u9M0wxG-jUl72NidIOZhwM-WLjvQ7j\n5.7.14 hzI-cSmW-29QoAY4uGjl_TJcTlVQW1abkeSqfJQO-Go06vynYi> Please log in via\n5.7.14 your web browser and then try again.\n5.7.14 Learn more at\n5.7.14 https://support.google.com/mail/answer/78754 b21-v6sm10353954pfm.97 - gsmtp')

image

And also I got a mail from gmail saying Sign In attempt was blocked
So I think gmail won't allow me to use their service for bulk mailing or
Any suggestions .. Thank you in advance

Installing it on a server

Are there an instructions to install the program not locally but to host it on a domain. I checked the documentation and it only gives the instructions to install it locally and not publicly. Does anybody know how to do it?

Internal Server Error on Heroku

The deployment to Heroku worked fine, but when I tried to submit the SMTP credentials I got a 500 Internal Server Error. The log says this:

ValueError: Missing staticfiles manifest entry for 'vendor/bootstrap-4.1.3/css/bootstrap.min.css'

This is very strange, because it happens only after I try to update the values, but the template used for both GET and POST requests is the same.

Update:
I get the error only when setting the port to 465, if I use 25 or 587 there are no issues. This points me into the direction of the form verification used to validate data (this). I'l need to debug it further to understand what is happening and why the error is with the staticfiles manifest

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.