GithubHelp home page GithubHelp logo

agnitas-org / openemm Goto Github PK

View Code? Open in Web Editor NEW
101.0 11.0 34.0 594.87 MB

Web-based software for email automation and marketing (newsletters, multi-stage mail campaigns, transaction mails, autoresponder, etc.)

Home Page: https://www.agnitas.de/en/e-marketing_manager/email-marketing-software-variants/openemm/

License: GNU Affero General Public License v3.0

Python 2.14% Lua 0.05% Makefile 0.03% C 3.12% HTML 2.10% Yacc 0.02% Shell 0.22% JavaScript 55.46% Java 31.61% CSS 4.18% PHP 0.01% SCSS 1.05% Batchfile 0.01%
openemm email automation marketing newsletter autoresponder email-marketing marketing-automation

openemm's Introduction

openemm's People

Contributors

agnitas-wkn 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

openemm's Issues

Double-Opt-In for multiple mailing lists

More a question, but since the forum and website aren't available I'm going to post it here:
As per documentation an action-based mailing needs to be created for a double-opt-in mail. The target mailing list needs to be selected in this action-based mailing. How would one create a global double-opt-in email for all mailings? We have over 20 mailing lists. Do we need to create 20 action-based mailings? And how would we choose the right action depending on the chosen mailing lists in the registration form?

after fresh install ( - ova binary) - can't login cause of IPv6 Address

Hi,

after a fresh OVA Installation i wasn't able to login to the frontend with the generated emm-master password.
Digging into the tomcat logfiles i got:

Caused by: java.sql.SQLException: Data too long for column 'ip_address' at row 1
Query is: INSERT INTO login_track_tbl (ip_address, login_status, username) VALUES (?, ?, ?), parameters ['XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX',10,'emm-master']

... looking into the database i figured out, the ip_address column of login_track_tbl table is only a varchar(20), so i altered it to a varchar(64) - since we have a ipv6 only network.

  • after this it worked.

i looked into the emm-mysql-fulldb-basic.sql and found a few other ip_address cols that where varchar(20) and changed them too.

  • see patch below.

Regards,

Michael.

diff --git a/frontend/sql/mysql/emm-mysql-fulldb-basic.sql b/frontend/sql/mysql/emm-mysql-fulldb-basic.sql
index 7191641..996b975 100644
--- a/frontend/sql/mysql/emm-mysql-fulldb-basic.sql
+++ b/frontend/sql/mysql/emm-mysql-fulldb-basic.sql
@@ -914,7 +914,7 @@ CREATE UNIQUE INDEX jobqueue$description$unique ON job_queue_tbl (description);

 CREATE TABLE login_track_tbl (
        login_track_id             INT(11) NOT NULL AUTO_INCREMENT COMMENT 'unique ID, use login_track_tbl_seq',
-       ip_address                 VARCHAR(20) COMMENT '[secret_data] address where login-request came from',
+       ip_address                 VARCHAR(64) COMMENT '[secret_data] address where login-request came from',
        creation_date              TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'login-request timestamp',
        login_status               INT(11) COMMENT '10 = successfull, 20 = failed, 40 = successfull but while IP is locked',
        username                   VARCHAR(200) COMMENT '[secret_data] emm-user name used in request',
@@ -923,7 +923,7 @@ CREATE TABLE login_track_tbl (
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT '[secret_data] any login-request, successfull or not, is stored here (for a certain time)';

 CREATE TABLE login_whitelist_tbl (
-       ip_address                 VARCHAR(20) NOT NULL COMMENT '[secret_data] IP to whitelist',
+       ip_address                 VARCHAR(64) NOT NULL COMMENT '[secret_data] IP to whitelist',
        description                VARCHAR(200) NOT NULL COMMENT 'reason to whitelist'
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT '[secret_data] listed Adresses will never get Login locked';

@@ -1290,7 +1290,7 @@ CREATE TABLE swyn_click_tbl (
        network_id                 VARCHAR(20) COMMENT 'This is the content of the field "SOURCE" of the SWYN_TBL to identify the network from where the click came.',
        mailing_id                 INT(11) COMMENT 'references mailing (mailing_tbl.mailing_id)',
        customer_id                INT(11) COMMENT 'references recipient who shared the newsletter (customer_xxx_tbl.customer_id)',
-       ip_address                 VARCHAR(15) COMMENT 'The ip-address of the clicker',
+       ip_address                 VARCHAR(64) COMMENT 'The ip-address of the clicker',
        timestamp                  TIMESTAMP NULL COMMENT 'The timestamp of the click',
        selector                   VARCHAR(2000) COMMENT 'If the used anon.view is restricted to a part of the newsletter, this contains the selector used to limit the output of the content'
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT 'This table records all clicks for displaying a shared newsletter on a network.';

20.10- mailinglists/mailinglist-users-view.jsp not found when clicking "Manage approval"

System: CentOS 8
OpenEMM version: 20.10.000.107

When you click the "Manage approval" button on a mailing list, you get a 500 error with the following stacktrace:

2020-12-17 09:32:00,239: ERROR [http-nio-8080-exec-4] org.apache.struts.tiles.taglib.InsertTag - ServletException in '/WEB-INF/jsp/mailinglists/mailinglist-users-view.jsp': File [/WEB-INF/jsp/mailinglists/mailinglist-users-view.jsp] not found
javax.servlet.ServletException: File [/WEB-INF/jsp/mailinglists/mailinglist-users-view.jsp] not found
at org.apache.jasper.servlet.JspServlet.handleMissingResource(JspServlet.java:407)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:374)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:712)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:580)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:516)
at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:955)
at org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:490)
at org.apache.struts.tiles.TilesUtilImpl.doInclude(TilesUtilImpl.java:138)
at org.apache.struts.tiles.TilesUtil.doInclude(TilesUtil.java:152)
at org.apache.struts.tiles.taglib.InsertTag.doInclude(InsertTag.java:764)
at org.apache.struts.tiles.taglib.InsertTag$InsertHandler.doEndTag(InsertTag.java:896)
at org.apache.struts.tiles.taglib.InsertTag.doEndTag(InsertTag.java:465)
at org.apache.jsp.WEB_002dINF.jsp.ajax_002dresponse_002dtemplate_jsp._jspx_meth_tiles_005finsert_005f1(ajax_002dresponse_002dtemplate_jsp.java:197)
at org.apache.jsp.WEB_002dINF.jsp.ajax_002dresponse_002dtemplate_jsp._jspService(ajax_002dresponse_002dtemplate_jsp.java:134)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:71)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:477)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:712)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:459)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:384)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)
at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:168)
at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:304)
at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1286)
at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1041)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:984)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at com.agnitas.emm.core.commons.filter.OriginUriFilter.doFilter(OriginUriFilter.java:43)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at com.agnitas.emm.core.commons.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:80)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at com.agnitas.emm.core.sessionhijacking.web.GroupingSessionHijackingPreventionFilter.doFilter(GroupingSessionHijackingPreventionFilter.java:105)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at com.agnitas.web.filter.HttpSecurityHeaderFilter.doFilter(HttpSecurityHeaderFilter.java:108)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at com.agnitas.emm.core.commons.filter.LoadBalancerFilter.doFilter(LoadBalancerFilter.java:153)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:666)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:688)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1594)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:834)

Mandatory python mysql module is missing!

Hi, I upgraded the virtualbox-OpenEMM Installation from 19 to 20.04 and installed python 3.8.3 like described in openemm_install_admin_guide_2020_1.3.1.pdf too. But now I can't run the installer:

[root@openemm openemm]# bin/OpenEMMInstaller.sh 
Checking python installation ...
Python version found: 3.8.3
Mandatory python mysql module is missing!
Command to install python mysql module: 'sudo yum -y install MySQL-python'
Install python mysql module now? Y/n Y
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.infonline.de
 * centos-sclo-rh: mirror.infonline.de
 * centos-sclo-sclo: ftp.hosteurope.de
 * extras: ftp.hosteurope.de
 * updates: ftp.hosteurope.de
Package MySQL-python-1.2.5-1.el7.x86_64 already installed and latest version
Nothing to do
Mandatory python mysql module is still missing!

I did a check of python mysql, It isn't available for python 3 yet? https://pypi.org/project/MySQL-python/1.2.5/

OpenEMM 19/20: Generating online archive throws error

Hi,
I'm trying to generate the online archive for mailings. I used the manual to create the action and form.
If I call the form with https:///form.do?agnCI=1&agnFN=archive_overview OpenEMM goes into the error state. I tried it first with OpenEMM 19, then i updated to 20, but the problem still exists. Since no more precise error code is output (in emm_error.log file), unfortunately no approach for a solution can be found.

2020-06-10 13:05:16,251: ERROR [http-nio-8080-exec-20] com.agnitas.userform.bean.impl.UserFormImpl - Action Error: CompanyID=1, ActionID=8, error codes=[]

Could the error output be improved?

Thanks, Sven

error when trying to build backend

Building wheels for collected packages: mariadb
Building wheel for mariadb (pyproject.toml): started
Building wheel for mariadb (pyproject.toml): finished with status 'error'
error: subprocess-exited-with-error

× Building wheel for mariadb (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [39 lines of output]
running bdist_wheel
running build
running build_py
creating build
creating build/lib.linux-x86_64-cpython-311
creating build/lib.linux-x86_64-cpython-311/mariadb
copying mariadb/init.py -> build/lib.linux-x86_64-cpython-311/mariadb
copying mariadb/init.py -> build/lib.linux-x86_64-cpython-311/mariadb
creating build/lib.linux-x86_64-cpython-311/mariadb/constants
copying mariadb/constants/init.py -> build/lib.linux-x86_64-cpython-311/mariadb/constants
copying mariadb/constants/CLIENT.py -> build/lib.linux-x86_64-cpython-311/mariadb/constants
copying mariadb/constants/INDICATOR.py -> build/lib.linux-x86_64-cpython-311/mariadb/constants
copying mariadb/constants/CURSOR.py -> build/lib.linux-x86_64-cpython-311/mariadb/constants
copying mariadb/constants/FIELD_TYPE.py -> build/lib.linux-x86_64-cpython-311/mariadb/constants
running build_ext
building 'mariadb._mariadb' extension
creating build/temp.linux-x86_64-cpython-311
creating build/temp.linux-x86_64-cpython-311/mariadb
gcc -pthread -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -DPY_MARIADB_MAJOR_VERSION=1 -DPY_MARIADB_MINOR_VERSION=0 -DPY_MARIADB_PATCH_VERSION=11 -I/usr/include/mysql -I/usr/include/mysql/mysql -I./include -I/home/openemm/.venv.3.11.8.final.0/include -I/home/openemm/opt/Python-3.11.8/include/python3.11 -c mariadb/mariadb.c -o build/temp.linux-x86_64-cpython-311/mariadb/mariadb.o -DDEFAULT_PLUGINS_SUBDIR="/usr/lib64/mysql/plugin"
mariadb/mariadb.c: In function 'PyInit__mariadb':
mariadb/mariadb.c:155:35: error: lvalue required as left operand of assignment
Py_TYPE(&MrdbConnection_Type) = &PyType_Type;
^
mariadb/mariadb.c:168:31: error: lvalue required as left operand of assignment
Py_TYPE(&MrdbCursor_Type) = &PyType_Type;
^
mariadb/mariadb.c:174:29: error: lvalue required as left operand of assignment
Py_TYPE(&MrdbPool_Type) = &PyType_Type;
^
mariadb/mariadb.c:180:34: error: lvalue required as left operand of assignment
Py_TYPE(&MrdbIndicator_Type) = &PyType_Type;
^
mariadb/mariadb.c:186:38: error: lvalue required as left operand of assignment
Py_TYPE(&Mariadb_Fieldinfo_Type) = &PyType_Type;
^
mariadb/mariadb.c:192:38: error: lvalue required as left operand of assignment
Py_TYPE(&Mariadb_DBAPIType_Type) = &PyType_Type;
^
error: command '/usr/bin/gcc' failed with exit code 1
[end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for mariadb
Failed to build mariadb
ERROR: Could not build wheels for mariadb, which is required to install pyproject.toml-based projects
Failed to install/upgrade python packages from file "/home/openemm/scripts/requirements/requirements.txt"

Migration to organization

Dear @agnitas-org team,

It is possible to migrate the personal account to organization?

Converting:

It is possible to rename this account and create the organization and move/transfer the repository to the organization.

Rename account:

Create an organization:

Transfer a repository:

Like:

make mysql host editable

I want to change host, but: host is read-only and may not be changed.
why? my installation doesn't have an open port on 127.0.0.1 ...

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.