• 在不带Docker的Ubuntu 18.04服务器上安装Mailtrain

    本教程将向您展示如何在不使用Docker的情况下在Ubuntu18.04上安装Mailtrain。Mailtrain是一款开源的自托管通讯应用,是Mailchimp等商业电子邮件服务提供商的替代品。您可以使用Mailtrain通过自己的电子邮件服务器或任何SMTP中继服务(Mailjet、SendGrid、Amazons、Mailgun等)向电子邮件订户发送电子邮件。 Mailtrain是根据GPLv3的条款发布的。0许可证,建立在节点上。js和MySQL/MariaDB。最新版本是v1。24.1,于2018年9月28日发布。Mailtrain的特点如下: 它允许您轻松管理大型邮件列表(如100万订户)。 您可以通过API手动添加订阅服务器,或从CSV文件导入。 它支持自定义字段(文本字段、数字、下拉列表或复选框)、合并标记和自定义表单。 列表分割。 RSS活动:从RSS提要自动生成新闻稿并发送给订阅者。 订阅者可以上传他们的GPG公钥,Mailtrain将为他们加密时事通讯。 允许您检查每个链接的单个点击统计信息。 高级电子邮件模板编辑器和HTML代码编辑器。 自动化:当用户激活预定义的触发器时发送特定的电子邮件。 您可以创建打开的电子邮件列表(允许公开订阅)和关闭的电子邮件列表(管理员将订阅者添加到列表中)。 它允许您恢复旧电子邮件活动(将旧活动发送给新订户)。 先决条件 要运行Mailtrain,您需要一个至少有1GB内存的服务器。你可以点击这个特殊链接在DigitalOcean上获得50美元的免费积分。(仅限新用户使用)。如果您已经是DigitalOcean用户,那么您可以单击此特殊链接在Vultr上获得50美元的免费积分(仅限新用户)。一旦你在DigitalOcean或Vultr拥有了一个帐户,请在你的服务器上安装Ubuntu18.04,并按照以下说明操作。 你还需要有一个域名。我从NameCheap注册了我的域名,因为价格低廉,而且他们免费为whois提供隐私保护。 在不带Docker的Ubuntu 18.04上安装Mailtrain 在之前的教程中,我解释了如何使用Docker安装Mailtrain。Docker非常适合那些希望快速启动和运行应用程序的人,但它也非常需要资源。在使用Docker安装了Mailtrain的1GB内存的VPS上,MySQL容器通常会因为内存不足而关闭。所以我将向你们展示一种在Ubuntu18.04上安装Mailtrain的RAM友好方法,它可以节省大约400MB的内存。 注意:Mailtrain提供了一个安装脚本,但它可能已经过时,并且在执行安装脚本时可能会遇到错误。本教程解释了每个步骤,以便您了解其工作原理并安装。 步骤1:安装MariaDB数据库服务器 您的订阅者数据将存储在数据库中。Mailtrain支持MySQL和MariaDB。MariaDB是MySQL的替代品。它是由MySQL团队的前成员开发的,他们担心Oracle可能会将MySQL变成一个封闭源代码的产品。让我们安装MariaDB数据库服务器。 输入以下命令将其安装到Ubuntu 18.04上。 sudo apt安装mariadb服务器mariadb客户端 安装后,MariaDB服务器应自动启动。使用systemctl检查其状态。 系统控制状态 样本输出: ● 马里亚布。服务-MariaDB 10.1.34数据库服务器已加载:已加载(/lib/systemd/system/MariaDB.service;已启用;供应商预设:已启用)活动:自2018年9月8日11:13:27 UTC周六起活动(运行);21世纪前的文档:男:mysqld(8)https://mariadb.com/kb/en/library/systemd/主PID:3473(mysqld)状态:“立即处理SQL请求…”任务:27(限制:505)CGroup:/system。切片/切片。服务└─3473/usr/sbin/mysqld 如果未运行,请使用以下命令启动: sudo systemctl启动mariadb 要使MariaDB在系统启动时自动启动,请运行 sudo systemctl启用mariadb 现在运行安装后安全脚本。 sudo mysql_安全安装 当它要求您输入根密码时,请按enter键,因为根密码尚未设置。然后输入y设置MariaDB服务器的根密码。 接下来,您可以按Enter键回答所有剩余的问题,这将删除匿名用户、禁用远程根登录并删除测试数据库。这一步是MariaDB数据库安全的基本要求。(请注意,字母Y大写,这意味着它是默认答案。) 检查MariaDB服务器版本信息。 mariadb——版本 输出: mariadb版本15.1发行版10.1.34-mariadb,适用于使用readline 5.2的debian linux gnu(x86_64) 步骤2:为Mailtrain创建数据库和用户 现在我们需要登录到MariaDB控制台,为Mailtrain创建一个数据库和用户。默认情况下,Ubuntu上的MaraiDB包使用unix_socket对用户登录进行身份验证,这基本上意味着您可以使用操作系统的用户名和密码登录到MariaDB控制台。因此,您可以运行以下命令登录,而无需提供MariaDB root密码。 sudo mariadb-u根 使用以下命令为Mailtrain创建数据库。我给它取名为mailtrain,但你可以用任何你喜欢的名字。(不要漏掉分号。) 创建数据库mailtrain; 然后输入下面的命令,为Mailtrain创建数据库用户,并将Mailtrain数据库的所有权限授予该用户。将mtuser和密码替换为首选用户名和密码。 授予mailtrain上的所有特权。*到mtuser@localhost由“mtuser_密码”标识; 接下来,创建一个对mailtrain数据库具有只读访问权限的用户。我把这个用户命名为mt_readonly。 在mailtrain上授予选择权。*去山_readonly@localhost由“mt_只读_密码”标识; 刷新特权表以使更改生效,然后退出MariaDB控制台。 同花顺特权;出口 步骤3:安装节点。js Mailtrain构建在节点上。js,这是一个JavaScript运行时环境,可以将人类可读的JavaScript代码转换为机器代码。所以我们需要安装Node。在Ubuntu 18.04上运行js以运行Mailtrain。Mailtrain需要节点。JS7+。本教程将安装Node的当前LTS版本。来自NodeSource存储库的js(V8.x)。 curl-sLhttps://deb.nodesource.com/setup_8.x| sudo-E bash-sudo apt install-y nodejs 注:节点的最新LTS版本。js现在是v12,但它不适用于Mailtrain v1。24.1. nodejs包包含npm(Node.js package manager)二进制文件,因此无需单独安装。检查你的节点。js和npm版本,运行 node-v npm-v 输出: 要从npm编译和安装本机插件,还需要安装构建工具: sudo apt安装-y构建必不可少 第4步:运行Mailtrain 转到/var/www/并从Github获取Mailtrain文件。 cd/var/www/sudo git clonehttps://github.com/Mailtrain-org/mailtrain.git 使用以下命令将初始SQL数据导入mailtrain数据库。您需要输入mtuser的密码。 mariadb-u mtuser-p mailtrain&lt/var/www/mailtrain/setup/sql/mailtrain。sql 创建产品。toml配置文件。 sudo nano/var/www/mailtrain/config/production。汤姆 在该文件中,可以添加覆盖/var/www/mailtrain/config/default中默认配置的配置。toml文件。我们只需要添加以下配置。 user=“mailtrain”group=“mailtrain”[log]level=“error”[www]secret=“将其替换为一些随机字符”[mysql]user=“mtuser”password=“mtuseru password”[queue]processes=5 保存并关闭文件。然后创建mailtrain用户和组,以便mailtrain守护程序作为其运行。注意,我们不需要为这个用户创建密码,所以我们创建一个系统用户而不是普通用户。 sudo adduser--系统--组邮件列车 为报表工作程序创建配置文件。 sudo nano/var/www/mailtrain/workers/reports/config/production。汤姆 添加以下配置。此报表工作程序将对mailtrain数据库具有只读访问权限。 [log]level=“error”[mysql]user=“mt_readonly”password=“mt_readonly_password” 保存并关闭文件。然后更改/var/www/mailtrain/的权限。 sudo chown mailtrain:mailtrain/var/www/mailtrain/-R sudo chmod o-rwx/var/www/mailtrain/config/ 并安装所需的节点包。 cd/var/www/mailtrain sudo npm安装--无进展--生产--不安全perm=true 将systemd服务单元文件复制到/etc/systemd/system/目录。 sudo cp/var/www/mailtrain/setup/mailtrain。服务/etc/systemd/system/ 打开这个文件。 sudo nano/etc/systemd/system/mailtrain。服务 将/opt/mailtrain更改为/var/www/mailtrain。你可能还想注释掉下面这行。因为,在启用以下行的情况下,如果MySQL/MariaDB重新启动,那么mailtrain。服务也将重新启动,如果MySQL/MariaDB服务器正在升级,则mailtrain。服务将停止。我认为不需要mysql。服务 Requires=mysql。服务 保存并关闭此文件。然后启动邮车。服务 sudo systemctl启动邮件列车。服务 检查它的状态。确保它正在运行。 sudo systemctl状态邮件列车。服务 在系统启动时启用自动启动。 sudo systemctl启用邮件列车。服务 现在Mailtrain正在运行,您可以通过端口3000访问Mailtrain web界面。 你的服务器ip:3000 第5步:设置反向代理并启用HTTPS 在使用Mailtrain web界面之前,我们先将其置于Nginx之后,然后启用HTTPS。在Ubuntu18.04上安装Nginx web服务器,安装方式如下: sudo apt安装nginx 现在,您可以复制示例mailtrain nginx。conf文件到/etc/nginx/conf.d/目录。 sudo cp/var/www/mailtrain/setup/mailtrain nginx。conf/etc/nginx/conf.d/ 打开这个文件。 sudo nano/etc/nginx/conf.d/mailtrain-nginx。形态 找到下面这行。 服务器名为mailtrain。org www.mailtrain。组织; 将server_name参数的值更改为您自己的域名,如新闻稿。你的领域。通用域名格式。别忘了为这个子域创建一个A记录。 服务器名称通讯。利努克斯宝贝。通用域名格式; 保存并关闭文件。然后测试Nginx配置。 sudo nginx-t 如果测试成功,请重新加载Nginx以使更改生效。 sudo systemctl重新加载nginx 你现在应该可以通过你的子域名:时事通讯访问Mailtrain web界面。你的领域。通用域名格式。 现在编辑/var/www/mailtrain/config/production。toml文件。 sudo nano/var/www/mailtrain/config/production。汤姆 在[www]部分,添加以下两行,以指示mailtrain位于Nginx代理的后面,并使其仅侦听本地主机地址。 host=“127.0.0.1”proxy=true 保存并关闭文件。然后重新启动Mailtrain,使更改生效。 sudo systemctl重启邮件列车 第6步:使用Let's Encrypt启用HTTPS 在你的Ubuntu 18.04服务器上安装Let's Encrypt client(certbot)。 sudo-apt-install-software-properties通用sudo-add-apt-repository-ppa:certbot/certbot-sudo-apt-install-certbot-python3-certbot-nginx 然后,通过执行以下命令,您可以使用Nginx插件自动获取并安装TLS证书。 sudo certbot--nginx--agree tos--redirect--hsts--StapleOCSP--email address--d时事通讯。你的领域。通用域名格式 现在,您可以通过域名和安全的HTTPS连接访问Mailtrain web界面。 htop命令告诉我,我的服务器正在使用大约500MB的RAM。如果我和Docker一起运行Mailtrain,大约是900MB。 使用用户名admin和密码test登录。然后更改您的帐户电子邮件地址和密码。转到“设置”页面以更改默认配置。你应该把服务地址从http://localhost:3000/到你的子域(https://newsletter.your-domain.com). 注意:管理员帐户很容易成为黑客攻击的目标。为了获得最佳安全性,建议您将用户名从admin更改为其他名称。Mailtrain web界面不提供此类选项,但您可以使用SQL命令更改MariaDB数据库中的用户名。 在邮件设置中,如果您有自己的电子邮件服务器或使用亚马逊SES,则可以使用SMTP。实际上,您也可以在SMTP选项卡中使用其他SMTP中继服务。在下面的截图中,我使用自己的电子邮件服务器。电子邮件将通过STARTTLS加密在587端口提交。 如果邮件服务器上安装了Mailtrain,则应使用以下SMTP设置。主机名应该是127.0.0.1,端口应该是25。与本地主机通话时,无需启用加密或身份验证。 保存你的设置。然后你可以创建一个列表来测试Mailtrain的功能。 如何处理Mailtrain中的跳转消息 你的邮件列表迟早会包含你无法发送邮件的地址。例如,当使用公司电子邮件地址的订户离开公司时,该电子邮件地址将被删除。因此,您的电子邮件服务器将收到弹出消息,表示无法发送电子邮件。 如果您使用SMTP中继服务发送电子邮件,他们将为您处理跳转邮件。如果您使用自己的电子邮件服务器发送电子邮件,那么您需要在Mailtrain中处理跳转邮件。Mailtrain提供了两种处理跳转邮件的方法。 维亚维尔 通过后缀日志 我个人使用VERP方法,因为它在电子邮件社区中被广泛使用,也因为第二种方法导致我的服务器上CPU使用率很高。 VERP弹跳处理 使用VERP(可变信封返回路径),您的电子邮件列表管理器为每个订阅者使用唯一的信封地址。要启用VERP,请编辑产品。toml文件。 sudo nano/var/www/mailtrain/config/production。汤姆 如果您的Mailtrain主机没有运行SMTP服务器,请添加以下文本。 [verp]enabled=true端口=25 disablesenderheader=true 如果您的Mailtrain服务器正在运行类似Postfix的SMTP服务器,请添加以下文本。弹跳处理服务器将监听127.0.0.1:2525。 [verp]enabled=true port=2525 host=“127.0.0.1”disablesenderheader=true 保存并关闭文件。然后重新启动Mailtrain,使更改生效。 sudo systemctl重启邮件列车 在Mailtrain web界面中,进入设置->维普·邦斯·汉德丁。选中“使用VERP捕捉反弹”。保存你的设置。 接下来,您需要为服务器主机名(bounces.your domain.com)创建一个MX记录,然后为这个主机名添加一个记录,指向您的Mailtrain主机,这样可以将跳转消息发送到您的Mailtrain主机。您列表中的每个订户都有一个唯一的信封地址,如[email protected]。 请注意,如果为域名部署了DMARC记录,则SPF对齐必须设置为放松模式。如果设置为严格模式,则您的新闻稿可能无法通过DMARC检查。 如果Mailtrain bounce handling server正在监听127.0.0.1的端口2525,而Postfix SMTP server正在监听公共IP地址的端口25,那么您需要设置传输映射,以便Postfix可以将bounce消息中继到Mailtrain。创建传输映射文件。 sudo nano/etc/postfix/transport 将以下行添加到此文件。这会告诉Postfix将地址为[email protected]的电子邮件转发到Mailtrain弹跳处理服务器。 反弹。你的领域。com smtp:[127.0.0.1]:2525 保存并关闭文件。然后生成索引文件。 sudo postmap/etc/postfix/transport 编辑后缀主配置文件。 sudo nano/etc/postfix/main。查阅 将以下行添加到文件中。 传输映射=散列:/etc/postfix/transport 注意:如果使用iRedMail设置邮件服务器,则transport_maps参数还有一些其他值。您应该像下面那样在末尾附加值。 transportu maps=proxy:mysql:/etc/postfix/mysql/transportu mapsu user。cf proxy:mysql:/etc/postfix/mysql/transportu mapsu邮件列表。cf proxy:mysql:/etc/postfix/mysql/transportu mapsu domain。cf hash:/etc/postfix/transport 保存并关闭文件。然后重新启动Postfix以使更改生效。 sudo systemctl重启后缀 通过Postfix日志处理跳转邮件 这假设Mailtrain安装在您的电子邮件服务器上。 Mailtrain能够通过查找包含status=Bounched的行,从Postfix邮件日志中检测被反弹的邮件。首先,需要启用Postfix日志读取服务器。编辑制作。toml文件。 sudo nano/var/www/mailtrain/config/production。汤姆 添加以下文本。 [postfixbounce]已启用=真 保存并关闭文件。然后重新启动Mailtrain,使更改生效。 sudo systemctl重启邮件列车 现在Postfix日志读取服务器正在监听127.0.0.1:5699。要让它读取后缀日志,请运行以下命令。 tail-F/var/log/mail。日志| nc本地主机5699- 要使其在后台运行,可以创建一个systemd服务单元。 sudo nano/etc/systemd/system/bouncetail。服务 添加以下文本。 [Unit]Description=Postfix bounce notifier After=mailtrain。服务[service]ExecStart=/bin/sh-c'/usr/bin/tail-F/var/log/mail。log | nc localhost 5699-'Type=simple Restart=always RestartSec=10[Install]WantedBy=multi-user。目标 保存并关闭文件。然后启动此服务,并在启动时启用自动启动。 sudo systemctl start bouncetail sudo systemctl enable bouncetail 请确保在重新启动mailtrain服务后重新启动bouncetail服务。我发现bouncetail服务在我的服务器上会导致高CPU使用率,所以我不使用这种方法。 使现代化 在我自己的服务器上使用Mailtrain一段时间后,我发现它们是导致电子邮件反弹的其他原因。以下是软反弹。 收件人的邮箱已满。 你的IP地址在黑名单上。 收件人电子邮件服务器已关闭或脱机。 还有硬反弹,即收件人的电子邮件地址不存在。默认情况下,如果检测到一个跳转,Mailtrain将取消订阅一个电子邮件地址,这对于硬跳转来说很好,但在取消订阅坏的电子邮件地址之前,最好允许几个软跳转。您可以要求接收电子邮件的服务器从黑名单中删除您的IP地址,然后重新订阅相关的电子邮件地址。 在Mailtrain中上传图像 要在Mailtrain中上载图像,需要安装imagemagick软件包。如果没有它,Mailtrain在上传图像时可能会抛出错误。 sudo apt安装imagemagick 如何在网站上插入注册表格 首先,您需要启用跨源资源共享。编辑制作。toml文件。 sudo nano/var/www/mailtrain/config/production。汤姆 在文件中添加以下行以将您的网站列入白名单。 [cors]#允许订阅小部件嵌入源=['https://www.example.com'] 保存并关闭文件。然后重新启动Mailtrain,使更改生效。 sudo systemctl重启邮件列车 接下来,在网站上添加以下代码以显示注册表单。将红色文本替换为Mailtrain域名和您自己的列表ID。 <div data mailtrain订阅小部件数据url=”https://newsletter.example.com/subscription/8ljDT9KMGr/widget“><a href=”https://newsletter.example.com/subscription/8ljDT9KMGr“>订阅我们的列表</a></div><脚本src=”https://newsletter.example.com/subscription/widget.js“></script> 然后添加自定义CSS规则,使其更具视觉吸引力。 如何在Mailtrain中创建其他用户 Mailtrain v2将允许管理员创建多个具有精细用户权限和灵活共享的用户。但在当前版本v.1.24.1中,只能通过数据库创建用户。登录MySQL/MariaDB控制台。 sudo mysql-u root 使用mailtrain数据库。 使用邮车; 如何在注册表格中插入选项 如果您想在注册表单上为访客提供选项供其选择,则需要创建自定义字段。转到列表,在“列表操作”下拉菜单中选择“自定义字段”,然后创建自定义字段。 首先,需要创建一个字段,该字段将成为选项列表的标题问题。在“字段类型”中,可以选择单选按钮(单选)或复选框(多选)。在组中,不要选择任何内容,因为此字段将成为选项的组。 然后为每个选项创建自定义字段。您需要为字段类型中的组值选择选项,并在组中选择上一个自定义字段名。 如何更改字段类型 默认情况下,Mailtrain web界面不允许您更改字段类型,但您可以在Mailtrain数据库中更改它。例如,我需要将字段类型从复选框更改为单选按钮。 我建议在更改数据库中的任何内容之前备份数据库。您可以运行以下命令来备份mailtrain数据库。 sudo mysqldump-u root mailtrain>邮车。sql 然后登录MariaDB数据库服务器。 sudo mysql-u root 使用mailtrain数据库。 使用邮车; 所有自定义字段都存储在自定义字段表中。您可以通过以下方式查看其内容: 从自定义_字段中选择*; 找到要修改的自定义字段,并运行以下SQL命令更改其类型。用你自己的身份证号码替换身份证号码。 更新自定义_字段集type='radio',其中id=3; 退出数据库服务器。 出口 如何在Mailtrain中清理电子邮件列表 未授权的订阅者不会为你赚钱,因为他们不会打开你的电子邮件,邮箱提供商会降低你的域名声誉。为了确保你未来的邮件进入收件箱,你应该从邮件列表中删除未注册的订阅者。 你可以为过去60天内没有打开你的电子邮件的人创建一个段,然后删除他们的电子邮件地址。该部分的规则如下: 收尾 我希望本教程能帮助你在Ubuntu18.04上安装Mailtrain。您可以访问Mailtrain wiki以查找有关使用Mailtrain的更多信息。和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门。当心。 在不带Docker的Ubuntu 18.04服务器上安装Mailtrain DELETE FROM subscription__1 where status = '2'; DELETE FROM subscription__2 where status = '2'; To exit MySQL/MariaDB database server, run exit; Now open the root user’s crontab file. sudo crontab -e Add the following two lines. # Delete unsubscribed email addresses from mailing list daily @daily /usr/bin/mysql -u root mailtrain -Bse "DELETE FROM subscription__1 where status = '2';DELETE FROM subscription__2 where status = '2';" Save and close the file. And you’re done. How to Export Your Email Lists in Mailtrain There’s no export button in the Mailtrain admin panel. However, if you have installed phpMyAdmin on the server, you can export your email lists from there. Select the mailtrain database in phpMyAdmin, then select the table that stores your email lists. In my case, the subscription__1 and subscription__2 tables store subscribers’ information. Then click the export button to save the table as a file. Note that there are 2 export buttons. You need to click the second export button to export the entire table. The first export button will only export the current visible records in the table. Next, you can choose the file format for the export file. Finally, click the Go button. How to Hide the Mailtrain Home Page If you don’t want visitors to see your mailtrain home page, you can set up a 301 permanent redirect to redirect visitors to your website’s home page, by adding the following code in Mailtrain’s Nginx configuration file. location = / { return 301 http://www.your-domain.com; } Save and close the file. Then reload Nginx for the change to take effect. sudo systemctl reload nginx You need to remember the Mailtrain login URL. https://newsletter.your-domain.com/users/login By default, the login button will redirect you to the Mailtrain home page, so you need to remember another URL. https://newsletter.your-domain.com/lists This allows you to manage your lists and other stuff in the dashboard. How to Insert Options on the Signup Form If you want to give options on the signup form for the visitor to select, then you need to create custom fields. Go to your list and select custom fields in the List Actions drop-down menu and create custom field. First, you need to create a field that will become the header question for the option list. In Field Type, you can select radio button (for single choice) or checkboxes (for multiple choices). In Group, don’t select anything, because this field will become a group for the options. Then create custom field for each option. You need to choose option for a group value in Field Type, and choose the previous custom filed name in Group. How to Change Field Type By default, the Mailtrain web interface doesn’t allow you to change filed type, but you can change it in the mailtrain database. For example, I need to change a field type from checkboxes to radio button. I recommend backing up the database before changing anything in the database. You can run the following command to backup mailtrain database. sudo mysqldump -u root mailtrain > mailtrain.sql Then log into MariaDB database server. sudo mysql -u root Use the mailtrain database. USE mailtrain; All custom fields are stored in the custom_fields table. You can check its content with: SELECT * FROM custom_fields; Find the custom field you want to modify and run the following SQL command to change its type. Replace the id number with your own. UPDATE custom_fields SET type = 'radio' Where id = 3; Exit the database server. EXIT; How to Clean Your Email List in Mailtrain Unengaged subscribers won’t make you money and because they don’t open your email, mailbox providers will reduce your domain reputation. To make sure your future email will get into the inbox, you should remove unengaged subscribers from your email list. You can create a segment for people who didn’t open your email in the last 60 days, then delete their email addresses. The rule for this segment is as follows: Wrapping Up I hope this tutorial helped you install Mailtrain on Ubuntu 18.04. You can go to Mailtrain wiki to find more information on using Mailtrain. As always, if you found this post useful, then subscribe to our free newsletter to get more tips and tricks. Take care.

    2022.03.23 浏览:122
  • 安装Mailtrain v1。24在Ubuntu20.04服务器上,不带Docker

    本教程将向您展示如何在不使用Docker的情况下在Ubuntu20.04上安装Mailtrain。Mailtrain是一个开源的自托管通讯应用程序,是Mailchimp等商业电子邮件服务提供商的替代方案。您可以使用Mailtrain通过自己的电子邮件服务器或任何SMTP中继服务(Mailjet、SendGrid、AmazonSES、Mailgun等)向电子邮件订户发送时事通讯。 更新:Mailtrain V2发布。新用户应该使用V2而不是V1。24:如何在Ubuntu20.04服务器上安装Mailtrain v2 Mailtrain是根据GPLv3的条款发布的。0许可证,建立在节点上。js和MySQL/MariaDB。最新版本是v1。24.1,于2018年9月28日发布。Mailtrain的特点如下: 它允许您轻松管理大型邮件列表(如100万订户)。 您可以通过API手动添加订阅服务器,或从CSV文件导入。 它支持自定义字段(文本字段、数字、下拉列表或复选框)、合并标记和自定义表单。 列表分割。 RSS活动:从RSS提要自动生成新闻稿并发送给订阅者。 订阅者可以上传他们的GPG公钥,Mailtrain将为他们加密时事通讯。 允许您检查每个链接的单个点击统计信息。 高级电子邮件模板编辑器和HTML代码编辑器。 自动化:当用户激活预定义的触发器时发送特定的电子邮件。 您可以创建打开的电子邮件列表(允许公开订阅)和关闭的电子邮件列表(管理员将订阅者添加到列表中)。 它允许您恢复旧电子邮件活动(将旧活动发送给新订户)。 第一步:选择合适的托管提供商 自托管可以为您节省大量资金。Mailtrain是免费的开源软件。您只需每月支付26美元购买VPS(虚拟专用服务器),即可运行功能齐全的邮件服务器和Mailtrain电子邮件营销平台。它可以轻松处理数百万用户。所以不管你有多少订户,你的总费用总是26美元/月。如果你在MailChimp上拥有数以百万计的订户,每月的成本将是数千美元。 要找到一个适合电子邮件托管和电子邮件营销的VPS(虚拟专用服务器)提供商并非易事。许多托管公司,如DigitalOcean blocks port 25。DigitalOcean不会解锁端口25,因此您需要设置SMTP中继以绕过阻止,这可能会增加您的费用。如果您使用Vultr VPS,则默认情况下端口25被阻止。如果您打开支持票证,他们可以解除阻止,但如果他们决定不允许您的电子邮件发送活动,他们可能会在任何时候再次阻止。如果你使用他们的服务器发送时事通讯,Vultr实际上可能会重新阻止它。 另一个问题是,像DigitalOcean或Vultr这样的大型知名主机提供商被垃圾邮件发送者滥用。通常,服务器IP地址在几个黑名单上。Vultr有一些完整的IP范围被列入黑名单。 ScalaHost是运行邮件服务器的一个非常好的选项,因为 他们不封锁25号端口。 IP地址不在任何电子邮件黑名单上。(至少对我来说是这样。我选择了达拉斯数据中心。)你肯定不想被列入可怕的微软Outlook IP黑名单或SpamRats黑名单。有些黑名单会屏蔽整个IP范围,你无法从此类黑名单中删除你的IP地址。 您可以编辑PTR记录以提高电子邮件的可交付性。 它们允许你向你的电子邮件订阅者发送时事通讯,而不受每小时或每天的限制。请注意,您不允许发送垃圾邮件,也称为未经请求的批量电子邮件。如果收件人没有明确允许你发送电子邮件,而你向他们发送电子邮件,那就是未经请求的电子邮件。 我建议遵循下面链接的教程,在ScalaHost上正确设置Linux VPS服务器。如果你选择提前12个月付款,在ScalaHost支付页面上使用优惠券代码linuxbabe2021可以节省100美元。 如何在ScalaHost上创建Linux VPS服务器 你还需要一个域名。我从NameCheap注册了我的域名,因为价格很低,他们给你一辈子免费的隐私保护。 如果你还没有自己的邮件服务器,我建议在安装Mailtrain之前使用免费的iRedMail程序快速设置自己的邮件服务器,这样你就不必花钱购买商业SMTP中继服务。 第2步:安装MariaDB数据库服务器 您的订阅者数据将存储在数据库中。Mailtrain支持MySQL和MariaDB。MariaDB是MySQL的替代品。它是由MySQL团队的前成员开发的,他们担心Oracle可能会将MySQL变成一个封闭源代码的产品。让我们安装MariaDB数据库服务器。 输入以下命令将其安装到Ubuntu 20.04上。 sudo apt安装mariadb服务器mariadb客户端 安装后,MariaDB服务器应自动启动。使用systemctl检查其状态。 系统控制状态 样本输出: ● 马里亚布。服务-MariaDB 10.3.22数据库服务器已加载:已加载(/lib/systemd/system/MariaDB.service;已启用;供应商预置:e>活动:活动(运行)自2020-04-20周一15:31:14 HKT;52年前的文档:男:mysqld(8)https://mariadb.com/kb/en/library/systemd/主PID:1826628(mysqld)状态:“立即接受SQL请求…”任务:30(限制:9451)内存:73.0M CGroup:/system。切片/切片。服务└─1826628/usr/sbin/mysqld 如果未运行,请使用以下命令启动: sudo systemctl启动mariadb 要使MariaDB在系统启动时自动启动,请运行 sudo systemctl启用mariadb 现在运行安装后安全脚本。 sudo mysql_安全安装 当它要求您输入根密码时,请按enter键,因为根密码尚未设置。然后输入y设置MariaDB服务器的根密码。 接下来,您可以按Enter键回答所有剩余的问题,这将删除匿名用户、禁用远程根登录并删除测试数据库。这一步是MariaDB数据库安全的基本要求。(请注意,字母Y大写,这意味着它是默认答案。) 检查MariaDB服务器版本信息。 mariadb——版本 输出: mariadb版本15.1发行版10.3.22-mariadb,适用于使用readline 5.2的debian linux gnu(x86_64) 步骤3:为Mailtrain创建数据库和用户 现在我们需要登录到MariaDB控制台,为Mailtrain创建一个数据库和用户。默认情况下,Ubuntu上的MaraiDB包使用unix_socket对用户登录进行身份验证,这基本上意味着您可以使用操作系统的用户名和密码登录到MariaDB控制台。因此,您可以运行以下命令登录,而无需提供MariaDB root密码。 sudo mariadb-u根 使用以下命令为Mailtrain创建数据库。我给它取名为mailtrain,但你可以用任何你喜欢的名字。(不要漏掉分号。) 创建数据库mailtrain; 然后输入下面的命令,为Mailtrain创建数据库用户,并将Mailtrain数据库的所有权限授予该用户。将mtuser和密码替换为首选用户名和密码。 授予mailtrain上的所有特权。*到mtuser@localhost由“mtuser_密码”标识; 接下来,创建一个对mailtrain数据库具有只读访问权限的用户。我把这个用户命名为mt_readonly。 在mailtrain上授予选择权。*去山_readonly@localhost由“mt_只读_密码”标识; 刷新特权表以使更改生效,然后退出MariaDB控制台。 同花顺特权;出口 第4步:安装节点。js Mailtrain构建在节点上。js,这是一个JavaScript运行时环境,可以将人类可读的JavaScript代码转换为机器代码。所以我们需要安装Node。在Ubuntu 20.04上运行js以运行Mailtrain。Mailtrain需要节点。JS7+。Node的最新版本。js是v14。但是,我不建议使用最新版本,因为它与Mailtrain v1不兼容。24.为了获得最佳兼容性,我建议安装Node。来自Snap Store的js 8。 如果您已经安装了Node。从官方APT存储库中下载js,您需要卸载它,因为它会干扰节点的快照版本。js。 sudo-apt-remove-nodejs 接下来,安装snap守护进程。 sudo apt安装snapd Node有多个版本。Snap Store中的js,可以通过以下内容看到: 快照信息节点 输出: 频道:最新/稳定:–最新/候选:–最新/测试版:–最新/边缘:15.0.0-nightly2020042524a4e615 2020-04-25(2668)30MB经典14/稳定:14.0.0-2020-04-23(2647)30MB经典14/候选人:↑ 14/测试版:↑ 14/边缘:↑ 13/稳定:13.13.0 2020-04-14(2635)29MB经典13/候选:↑ 13/测试版:↑ 13/边缘:↑ 12/稳定:12.16.2 2020-04-23(2644)21MB经典12/候选:↑ 12/测试版:↑ 12/边缘:↑ 11/稳定:11.15.0 2019-06-26(2336)19MB经典11/候选人:↑ 11/beta:↑ 11/边缘:↑ 10/稳定:10.20.1 2020-04-23(2638)20MB经典10/候选:↑ 10/测试版:↑ 10/边缘:↑ 9/稳定:9.11.2 2018-12-14(1407)17MB经典9/候选人:↑ 9/测试版:↑ 9/边缘:↑ 8/稳定:8.16.0 2019-06-24(2310)16MB经典8/候选:↑ 8/测试版:↑ 8/边缘:↑ 6/稳定:6.17.1 2019-06-24(2311)13MB经典6/候选:↑ 6/测试版:↑ 6/边缘:↑ 我们可以安装Node。来自8/稳定频道的js。 sudo snap安装节点--经典--通道=8/稳定 检查你的节点。js和npm版本,运行 node-v npm-v 输出: 注意:如果这是您第一次在服务器上安装Snap软件包,您需要注销并重新登录,才能使用Snap版本的Ruby。 要从npm编译和安装本机插件,还需要安装构建工具: sudo apt安装-y构建必不可少 第5步:运行Mailtrain 转到/var/www/并从Github获取Mailtrain文件。 cd/var/www/sudo git clonehttps://github.com/Mailtrain-org/mailtrain.git 使用以下命令将初始SQL数据导入mailtrain数据库。您需要输入mtuser的密码。 mariadb-u mtuser-p mailtrain&lt/var/www/mailtrain/setup/sql/mailtrain。sql 创建产品。toml配置文件。 sudo nano/var/www/mailtrain/config/production。汤姆 在该文件中,可以添加覆盖/var/www/mailtrain/config/default中默认配置的配置。toml文件。我们只需要添加以下配置。 user=“mailtrain”group=“mailtrain”[log]level=“error”[www]secret=“将其替换为一些随机字符”[mysql]user=“mtuser”password=“mtuseru password”[queue]processes=5 保存并关闭文件。然后创建mailtrain用户和组,以便mailtrain守护程序作为其运行。注意,我们不需要为这个用户创建密码,所以我们创建一个系统用户而不是普通用户。 sudo adduser--系统--组邮件列车 为报表工作程序创建配置文件。 sudo nano/var/www/mailtrain/workers/reports/config/production。汤姆 添加以下配置。此报表工作程序将对mailtrain数据库具有只读访问权限。 [log]level=“error”[mysql]user=“mt_readonly”password=“mt_readonly_password” 保存并关闭文件。然后更改/var/www/mailtrain/的权限。 sudo chown mailtrain:mailtrain/var/www/mailtrain/-R sudo chmod o-rwx/var/www/mailtrain/config/ 安装Python2。7并创建一个符号链接。 sudo安装python2。7 sudo ln-s/usr/bin/python2。7/usr/bin/python 并安装所需的节点包。 cd/var/www/mailtrain sudo-u mailtrain npm config set scripts prepend node path true sudo-u mailtrain npm install--no progress--production--unsafe perm=true 将Mailtrain systemd服务单元文件复制到/etc/systemd/system/目录。 sudo cp/var/www/mailtrain/setup/mailtrain。服务/etc/systemd/system/ 打开这个文件。 sudo nano/etc/systemd/system/mailtrain。服务 将/opt/mailtrain更改为/var/www/mailtrain。并将/usr/bin/node更改为/snap/bin/node,因为我们使用的是node的snap版本。js。 你可能还想注释掉下面这行。因为,在启用以下行的情况下,如果MySQL/MariaDB重新启动,那么mailtrain。服务也将重新启动,如果MySQL/MariaDB服务器正在升级,则mailtrain。服务将停止。我认为不需要mysql。服务 Requires=mysql。服务 保存并关闭此文件。然后启动邮车。服务 sudo systemctl启动邮件列车。服务 检查它的状态。确保它正在运行。 systemctl状态邮件列车。服务 输出: ● 邮车。服务-邮件列车服务器已加载:已加载(/etc/systemd/system/Mailtrain.service;已禁用;供应商预设:已启用)活动:活动(运行)自2020年4月26日10:26:37香港时间起;11秒前主PID:3058360(邮件列车)任务:20(限制:9451)内存:228.6M CGroup:/system。切片/邮件列车。服务├─3058360邮车└─3058396/snap/node/2310/bin/node/var/www/mailtrain/services/sender。js 在系统启动时启用自动启动。 sudo systemctl启用邮件列车。服务 现在Mailtrain正在运行,您可以通过端口3000访问Mailtrain web界面。 你的服务器ip:3000 第6步:设置反向代理并启用HTTPS 在使用Mailtrain web界面之前,我们先将其置于Nginx之后,然后启用HTTPS。在Ubuntu20.04上安装Nginx web服务器,安装方式如下: sudo apt安装nginx 现在,您可以复制示例mailtrain nginx。conf文件到/etc/nginx/conf.d/目录。 sudo cp/var/www/mailtrain/setup/mailtrain nginx。conf/etc/nginx/conf.d/ 打开这个文件。 sudo nano/etc/nginx/conf.d/mailtrain-nginx。形态 找到下面这行。 服务器名为mailtrain。org www.mailtrain。组织; 将server_name参数的值更改为您自己的域名,如新闻稿。你的领域。通用域名格式。别忘了为这个子域创建DNS记录。 服务器名称通讯。利努克斯宝贝。通用域名格式; 保存并关闭文件。然后测试Nginx配置。 sudo nginx-t 如果测试成功,请重新加载Nginx以使更改生效。 sudo systemctl重新加载nginx 你现在应该可以通过你的子域名:时事通讯访问Mailtrain web界面。你的领域。通用域名格式。 现在编辑/var/www/mailtrain/config/production。toml文件。 sudo nano/var/www/mailtrain/config/production。汤姆 在[www]部分,添加以下两行,以指示mailtrain位于Nginx代理的后面,并使其仅侦听本地主机地址。 host=“127.0.0.1”proxy=true 保存并关闭文件。然后重新启动Mailtrain,使更改生效。 sudo systemctl重启邮件列车 第7步:使用Let's Encrypt启用HTTPS 在Ubuntu 20.04服务器上安装Let's Encrypt client(certbot)。 sudo apt安装certbot python3 certbot nginx 然后,通过执行以下命令,您可以使用Nginx插件自动获取并安装TLS证书。 sudo certbot--nginx--agree tos--redirect--hsts--stufp ocsp--email[email protected]-d时事通讯。你的领域。通用域名格式 现在,您可以通过域名和安全的HTTPS连接访问Mailtrain web界面。 htop命令告诉我,我的服务器正在使用大约500MB的RAM。如果我和Docker一起运行Mailtrain,大约是900MB。 使用用户名admin和密码test登录。然后更改您的帐户电子邮件地址和密码。转到“设置”页面以更改默认配置。你应该把服务地址从http://localhost:3000/到你的子域(https://newsletter.your-domain.com). 注意:管理员帐户很容易成为黑客攻击的目标。为了获得最佳安全性,建议您将用户名从admin更改为其他名称。Mailtrain web界面不提供此类选项,但您可以使用SQL命令更改MariaDB数据库中的用户名。 在邮件设置中,如果您有自己的电子邮件服务器或使用亚马逊SES,则可以使用SMTP。实际上,您也可以在SMTP选项卡中使用其他SMTP中继服务。在下面的截图中,我使用自己的电子邮件服务器。电子邮件将通过STARTTLS加密在587端口提交。 如果邮件服务器上安装了Mailtrain,则应使用以下SMTP设置。主机名应该是127.0.0.1,端口应该是25。与本地主机通话时,无需启用加密或身份验证。 保存你的设置。然后你可以创建一个列表来测试Mailtrain的功能。 如何启用Redis缓存 您可以为会话缓存安装Redis server。这将允许Mailtrain运行5个进程,而不是默认的单个进程,如果您有大量电子邮件订户,这将加快电子邮件发送速度(请注意,这将增加大约250MB的内存使用)。 sudo apt安装redis 安装后,Redis应该会自动启动。您可以通过以下方式检查其状态: systemctl状态redis 样本输出: ● redis服务器。服务-高级键值存储已加载:已加载(/lib/systemd/system/redis-server.service;已启用;供应商预设:已启用)活动:自Sun 2020-04-26 11:02:03 HKT起活动(正在运行);23秒前的4分钟文档:http://redis.io/documentation,man:redis服务器(1)主PID:3059455(redis服务器)任务:4(限制:9451)内存:2.3M CGroup:/system。slice/redis服务器。服务└─3059455/usr/bin/redis服务器127.0.0.1:6379 如果它没有运行,可以从以下内容开始: sudo systemctl启动redis 启动时启用自动启动: sudo systemctl启用redis 接下来,编辑邮件列车配置文件。 sudo nano/var/www/mailtrain/config/production。汤姆 在文件末尾添加以下两行以启用Redis。 [redis]enabled=true 保存并关闭文件。然后重启Mailtrain。 sudo systemctl重启邮件列车 如何处理Mailtrain中的跳转消息 你的邮件列表迟早会包含你无法发送邮件的地址。例如,当使用公司电子邮件地址的订户离开公司时,该电子邮件地址将被删除。因此,您的电子邮件服务器将收到弹出消息,表示无法发送电子邮件。 如果您使用SMTP中继服务发送电子邮件,他们将为您处理跳转邮件。如果您使用自己的电子邮件服务器发送电子邮件,那么您需要在Mailtrain中处理跳转邮件。Mailtrain提供了两种处理跳转邮件的方法。 维亚维尔 通过后缀日志 我个人使用VERP方法,因为它在电子邮件社区中被广泛使用,也因为第二种方法导致我的服务器上CPU使用率很高。 VERP弹跳处理 使用VERP(可变信封返回路径),您的电子邮件列表管理器为每个订阅者使用唯一的信封地址。要启用VERP,请编辑产品。toml文件。 sudo nano/var/www/mailtrain/config/production。汤姆 如果您的Mailtrain主机没有运行SMTP服务器,请添加以下文本。 [verp]enabled=true端口=25 disablesenderheader=true 如果您的Mailtrain服务器正在运行类似Postfix的SMTP服务器,请添加以下文本。弹跳处理服务器将监听127.0.0.1:2525。 [verp]enabled=true port=2525 host=“127.0.0.1”disablesenderheader=true 保存并关闭文件。然后重新启动Mailtrain,使更改生效。 sudo systemctl重启邮件列车 在Mailtrain web界面中,进入设置->维普·邦斯·汉德丁。选中“使用VERP捕捉反弹”。保存你的设置。 接下来,您需要为服务器主机名(bounces.your domain.com)创建一个MX记录,然后为这个主机名添加一个记录,指向您的Mailtrain主机,这样可以将跳转消息发送到您的Mailtrain主机。您列表中的每个订户都有一个唯一的信封地址,如[email protected]。 请注意,如果为域名部署了DMARC记录,则SPF对齐必须设置为放松模式。如果设置为严格模式,则您的新闻稿可能无法通过DMARC检查。 如果Mailtrain bounce handling server正在监听127.0.0.1的端口2525,而Postfix SMTP server正在监听公共IP地址的端口25,那么您需要设置传输映射,以便Postfix可以将bounce消息中继到Mailtrain。创建传输映射文件。 sudo nano/etc/postfix/transport 将以下行添加到此文件。这会告诉Postfix将地址为[email protected]的电子邮件转发到Mailtrain弹跳处理服务器。 反弹。你的领域。com smtp:[127.0.0.1]:2525 保存并关闭文件。然后生成索引文件。 sudo postmap/etc/postfix/transport 编辑后缀主配置文件。 sudo nano/etc/postfix/main。查阅 将以下行添加到文件中。 传输映射=散列:/etc/postfix/transport 注意:如果使用iRedMail设置邮件服务器,则transport_maps参数还有一些其他值。您应该像下面那样在末尾附加值。 transportu maps=proxy:mysql:/etc/postfix/mysql/transportu mapsu user。cf proxy:mysql:/etc/postfix/mysql/transportu mapsu邮件列表。cf proxy:mysql:/etc/postfix/mysql/transportu mapsu domain。cf hash:/etc/postfix/transport 保存并关闭文件。然后重新启动Postfix以使更改生效。 sudo systemctl重启后缀 通过Postfix日志处理跳转邮件 这假设Mailtrain安装在您的电子邮件服务器上。 Mailtrain能够通过查找包含status=Bounched的行,从Postfix邮件日志中检测被反弹的邮件。首先,需要启用Postfix日志读取服务器。编辑制作。toml文件。 sudo nano/var/www/mailtrain/config/production。汤姆 添加以下文本。 [postfixbounce]已启用=真 保存并关闭文件。然后重新启动Mailtrain,使更改生效。 sudo systemctl重启邮件列车 现在Postfix日志读取服务器正在监听127.0.0.1:5699。要让它读取后缀日志,请运行以下命令。 tail-F/var/log/mail。日志| nc本地主机5699- 要使其在后台运行,可以创建一个systemd服务单元。 sudo nano/etc/systemd/system/bouncetail。服务 添加以下文本。 [Unit]Description=Postfix bounce notifier After=mailtrain。服务[service]ExecStart=/bin/sh-c'/usr/bin/tail-F/var/log/mail。log | nc localhost 5699-'Type=simple Restart=always RestartSec=10[Install]WantedBy=multi-user。目标 保存并关闭文件。然后启动此服务,并在启动时启用自动启动。 sudo systemctl start bouncetail sudo systemctl enable bouncetail 请确保在重新启动mailtrain服务后重新启动bouncetail服务。我发现bouncetail服务在我的服务器上会导致高CPU使用率,所以我不使用这种方法。 使现代化 在我自己的服务器上使用Mailtrain一段时间后,我发现它们是导致电子邮件反弹的其他原因。以下是软反弹。 收件人的邮箱已满。 你的IP地址在黑名单上。 收件人电子邮件服务器已关闭或脱机。 还有硬反弹,即收件人的电子邮件地址不存在。默认情况下,如果检测到一个跳转,Mailtrain将取消订阅一个电子邮件地址,这对于硬跳转来说很好,但在取消订阅坏的电子邮件地址之前,最好允许几个软跳转。您可以要求接收电子邮件的服务器从黑名单中删除您的IP地址,然后重新订阅相关的电子邮件地址。 在Mailtrain中上传图像 要在Mailtrain中上载图像,需要安装imagemagick软件包。如果没有它,Mailtrain在上传图像时可能会抛出错误。 sudo apt安装imagemagick 如何在网站上插入注册表格 首先,您需要启用跨源资源共享。编辑制作。toml文件。 sudo nano/var/www/mailtrain/config/production。汤姆 在文件中添加以下行以将您的网站列入白名单。 [cors]#允许订阅小部件嵌入源=['https://www.example.com'] 保存并关闭文件。然后重新启动Mailtrain,使更改生效。 sudo systemctl重启邮件列车 接下来,在网站上添加以下代码以显示注册表单。将红色文本替换为Mailtrain域名和您自己的列表ID。 <div data mailtrain订阅小部件数据url=”https://newsletter.example.com/subscription/8ljDT9KMGr/widget“><a href=”https://newsletter.example.com/subscription/8ljDT9KMGr“>订阅我们的列表</a></div><脚本src=”https://newsletter.example.com/subscription/widget.js“></script> 然后添加自定义CSS规则,使其更具视觉吸引力。 如何在Mailtrain中创建其他用户 Mailtrain v2将允许管理员创建多个具有精细用户权限和灵活共享的用户。但在当前版本v.1.24.1中,只能通过数据库创建用户。登录MySQL/MariaDB控制台。 sudo mysql-u root 使用mailtrain数据库。 使用邮车; 然后使用下面的SQL命令创建一个用户条目。 在'users'('username'、'password'、'email'、'access_token'、'reset_token'、'reset_expire'、'created')值中插入('your-username'、password(“your password”)、'[email protected]、NULL、NULL、NULL、NOW(); 退出数据库服务器。 出口 我发现以这种方式创建的用户无法第一次登录到Mailtrain web界面。用户需要使用登录页面上的“忘记密码”链接重置其密码,然后登录才能正常工作。还请注意,所有用户在Mailtrain web界面中都具有管理权限。 如何从MailChimp导入电子邮件列表 首先,你需要进入MailChimp仪表板中的“受众”选项卡。单击查看联系人按钮以显示所有订阅者。然后单击“导出受众”按钮将列表导出为CSV文件。 然后转到Mailtrain dashboard并选择您的电子邮件列表。选择列表操作下拉按钮,然后单击导入订阅服务器。 在下一页中,您需要上传从MailChimp下载的CSV文件。 然后,您需要将MailChimp中的字段与Mailtrain电子邮件列表中的字段进行匹配。如果MailChimp中的某些字段在Mailtrain电子邮件列表中不存在,则可以在Mailtrain dashboard中创建它们。 请注意,如果MailChimp字段包含单选按钮,则还应在Mailtrain字段中创建单选按钮。但是,您需要根据单选按钮的值对MailChimp列表进行分段,然后将这些分段导出到不同的CSV文件,并将它们一次导入一个分段。这是因为Mailtrain没有提供匹配MailChimp中每个单选按钮值的方法。 Cron作业自动清除未订阅的电子邮件地址 您可以在Mailtrain基于web的管理面板中手动删除未订阅的电子邮件地址,但使用MySQL/MariaDB命令删除它们要高效得多,然后您只需创建一个Cron作业来自动执行此任务。 首先,登录MySQL/MariaDB数据库服务器。 sudo mysql-u root 然后连接到mailtrain数据库。 使用邮车; 订阅者的信息存储在订阅表中。如果您有多个邮件列表,那么您将有多个订阅表。可以使用以下SQL命令列出所有这些表。 显示“订阅%”等表格; 在我的服务器上输出。 +-------------------------------------+|表|u in|u mailtrain(订阅%|+---------------------------------------|订阅|订阅|订阅| 1 |订阅| 2 |+-------------------------------------+ 第一张桌子是空的。我在Mailtrain上有两个列表。它们存储在subscription__1和subscription__2表中。订阅的电子邮件地址的状态代码设置为1。未订阅的电子邮件地址的状态代码设置为2。因此,要删除未订阅的电子邮件地址,可以运行以下SQL命令。 从订阅__1中删除,其中状态为'2';从订阅__2中删除,其中状态为'2'; 要退出MySQL/MariaDB数据库服务器,请运行 出口 现在打开根用户的crontab文件。 sudo crontab-e 添加以下两行。 #从邮件列表daily@daily/usr/bin/mysql-u root mailtrain-Bse中删除未订阅的电子邮件地址“从订阅中删除,其中状态为'2';从订阅中删除,其中状态为'2' 保存并关闭文件。你完了。 如何在Mailtrain中导出电子邮件列表 Mailtrain管理面板中没有导出按钮。但是,如果在服务器上安装了phpMyAdmin,则可以从那里导出电子邮件列表。在phpMyAdmin中选择mailtrain数据库,然后选择存储电子邮件列表的表。在我的例子中,subscription__1和subscription__2表存储订阅者的信息。 然后单击导出按钮将表另存为文件。请注意,有两个导出按钮。您需要单击第二个导出按钮来导出整个表。第一个导出按钮将只导出表中当前可见的记录。 接下来,您可以选择导出文件的文件格式。最后,点击Go按钮。 如何隐藏Mailtrain主页 如果你不想让访问者看到你的mailtrain主页,你可以通过在mailtrain的Nginx配置文件中添加以下代码,设置301永久重定向,将访问者重定向到你网站的主页。 位置=/{return 301http://www.your-domain.com; } 保存并关闭文件。然后重新加载Nginx以使更改生效。 sudo systemctl重新加载nginx 你需要记住Mailtrain的登录URL。 https://newsletter.your-domain.com/users/login 默认情况下,登录按钮会将您重定向到Mailtrain主页,因此您需要记住另一个URL。 https://newsletter.your-domain.com/lists 这允许你管理你的列表和仪表板中的其他内容。 如何在注册表格中插入选项 如果您想在注册表单上为访客提供选项供其选择,则需要创建自定义字段。转到列表,在“列表操作”下拉菜单中选择“自定义字段”,然后创建自定义字段。 首先,需要创建一个字段,该字段将成为选项列表的标题问题。在“字段类型”中,可以选择单选按钮(单选)或复选框(多选)。在组中,不要选择任何内容,因为此字段将成为选项的组。 然后为每个选项创建自定义字段。您需要为字段类型中的组值选择选项,并在组中选择上一个自定义字段名。 如何更改字段类型 默认情况下,Mailtrain web界面不允许您更改字段类型,但您可以在Mailtrain数据库中更改它。例如,我需要将字段类型从复选框更改为单选按钮。 我建议在更改数据库中的任何内容之前备份数据库。您可以运行以下命令来备份mailtrain数据库。 sudo mysqldump-u root mailtrain>邮车。sql 然后登录MariaDB数据库服务器。 sudo mysql-u root 使用mailtrain数据库。 使用邮车; 所有自定义字段都存储在自定义字段表中。您可以通过以下方式查看其内容: 从自定义_字段中选择*; 找到要修改的自定义字段,并运行以下SQL命令更改其类型。用你自己的身份证号码替换身份证号码。 更新自定义_字段集type='radio',其中id=3; 退出数据库服务器。 出口 如何在Mailtrain中清理电子邮件列表 未授权的订阅者不会为你赚钱,因为他们不会打开你的电子邮件,邮箱提供商会降低你的域名声誉。为了确保你未来的邮件进入收件箱,你应该从邮件列表中删除未注册的订阅者。 你可以为过去60天内没有打开你的电子邮件的人创建一个段,然后删除他们的电子邮件地址。该部分的规则如下: RAM要求 Mailtrain可以使用相当多的RAM。确保您的服务器至少有1GB的可用RAM。例如,如果当前RAM使用量为4GB,则总RAM应至少为5GB。如果RAM用完,Mailtrain中的电子邮件可能会被退回。 收尾 我希望本教程能帮助你在Ubuntu 20.04上安装Mailtrain。您可以访问Mailtrain wiki以查找有关使用Mailtrain的更多信息。和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门。当心。

    2022.03.23 浏览:115
  • 如何使用Docker在Ubuntu18.04上安装Mailtrain

    本教程将向您展示如何在Ubuntu 18.04上安装Mailtrain。Mailtrain是一款开源的自托管通讯应用,是Mailchimp等商业电子邮件服务提供商的替代品。您可以使用Mailtrain通过自己的电子邮件服务器或通过SMTP中继使用任何电子邮件发送服务(Mailjet、SendGrid、Amazons、Mailgun等)向电子邮件订户发送电子邮件。 Mailtrain是根据GPLv3的条款发布的。0许可证,建立在节点上。js和MySQL/MariaDB。最新版本是v1。24.1,于2018年9月27日发布。Mailtrain的特点如下: 它允许您轻松管理大型邮件列表(如100万订户)。 您可以通过API手动添加订阅服务器,或从CSV文件导入。 它支持自定义字段(文本字段、数字、下拉列表或复选框)、合并标记和自定义表单。 列出分类。 RSS活动:从RSS提要自动生成新闻稿并发送给订阅者。 订阅者可以上传他们的GPG公钥,Mailtrain将加密新闻稿。 允许您检查每个链接的单个点击统计信息。 高级模板编辑器和HTML代码编辑器。 自动化:当用户激活预定义的触发器时发送特定的电子邮件。 先决条件 要使用Docker运行Mailtrain,您需要一个至少有1GB内存的服务器。你可以点击这个特殊链接在DigitalOcean上获得100美元的免费积分。(仅限新用户使用)。如果您已经是DigitalOcean用户,那么您可以单击此特殊链接在Vultr上获得50美元的免费积分(仅限新用户)。一旦你在DigitalOcean或Vultr拥有了一个帐户,请在你的服务器上安装Ubuntu18.04,并按照以下说明操作。 你还需要有一个域名。我从NameCheap注册了我的域名,因为价格低廉,而且他们免费为whois提供隐私保护。 如何在Ubuntu18.04服务器上安装Mailtrain 安装Mailtrain最简单的方法是使用Docker。首先,我们需要安装Docker和Docker Compose,其最新版本可以从Docker的官方存储库中安装。以下步骤适用于Ubuntu 18.04。 为Docker存储库创建源列表文件。 sudo nano /etc/apt/sources.list.d/docker.list 复制以下行并将其粘贴到文件中。 deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable 保存并关闭文件。然后通过运行下面的命令导入Docker的PGP密钥。 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - 由于该存储库使用HTTPS连接,我们还需要安装apt传输HTTPS和ca证书包。 sudo apt install apt-transport-https ca-certificates 接下来,更新包索引并安装最新版本的Docker CE(社区版)。 sudo apt update sudo apt install docker-ce 一旦安装,Docker守护进程应该会自动启动。您可以通过以下方式进行检查: systemctl status docker 输出: ● docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2018-10-17 16:27:42 CST; 9min ago Docs: https://docs.docker.com Main PID: 6675 (dockerd) Tasks: 18 CGroup: /system.slice/docker.service ├─6675 /usr/bin/dockerd -H fd:// └─6696 docker-containerd --config /var/run/docker/containerd/containerd.toml 如果未运行,则使用以下命令启动守护程序: sudo systemctl start docker 并在系统启动时启用自动启动: sudo systemctl enable docker 检查Docker版本。 docker -v 样本输出: Docker version 18.06.1-ce, build e68fc7a 可以使用pip Python包管理器安装最新版本的docker compose。 sudo apt install python-pip sudo pip install docker-compose 检查Docker Compose版本。 docker-compose --version 样本输出: docker-compose version 1.22.0, build f46880f 和Docker一起运行Mailtrain 从Github存储库下载Mailtrain文件。 sudo apt install git git clone git://github.com/Mailtrain-org/mailtrain.git 更改文件名。 cd mailtrain mv docker-compose.override.yml.tmpl docker-compose.override.yml 现在您可以编辑docker compose。yml文件更改默认MySQL用户登录凭据。然后启动docker compose中定义的容器。yml文件。 sudo docker-compose up -d 将创建mailtrain_默认网络,并运行3个容器:mailtrain latest、mysql和redis,通过发出以下命令可以看到: sudo docker network ls sudo docker ps 现在,您可以通过端口3000访问Mailtrain web界面。 your-server-ip:3000 设置反向代理并启用HTTPS 在使用Mailtrain web界面之前,我们先将其置于Nginx之后,然后启用HTTPS。在Ubuntu18.04上安装Nginx web服务器,安装方式如下: sudo apt install nginx 为Mailtrain创建服务器块文件。 sudo nano /etc/nginx/conf.d/mailtrain.conf 将以下行复制并粘贴到文件中。您可以为Mailtrain创建一个子域,如下所示。别忘了为该子域创建一个A记录。 server { listen [::]:80; listen 80; server_name newsletter.linuxbabe.com; location / { proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_pass ; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_next_upstream error timeout http_502 http_503 http_504; } } 保存并关闭文件。然后测试Nginx配置。 sudo nginx -t 如果测试成功,请重新加载Nginx以使更改生效。 sudo systemctl reload nginx 你现在应该可以通过你的子域名:时事通讯访问Mailtrain web界面。你的领域。通用域名格式。 使用Let's Encrypt启用HTTPS 在你的Ubuntu 18.04服务器上安装Let's Encrypt client(certbot)。 sudo apt install software-properties-common sudo add-apt-repository ppa:certbot/certbot sudo apt install certbot python3-certbot-nginx 然后,通过执行以下命令,您可以使用Nginx插件自动获取并安装TLS证书。 sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email your-email-address -d newsletter.your-domain.com 现在,您可以通过域名和安全的HTTPS连接访问Mailtrain web界面。 使用用户名admin和密码test登录。然后更改您的帐户电子邮件地址和密码。转到“设置”页面以更改默认配置。你应该把服务地址从http://localhost:3000/到你的子域。 在邮件设置中,如果您有自己的电子邮件服务器或使用亚马逊SES,则可以使用SMTP。实际上,您也可以在SMTP选项卡中使用其他SMTP中继服务。 保存你的设置。然后你可以创建一个列表来测试Mailtrain的功能。 我希望本教程能帮助你用Docker在Ubuntu18.04上安装Mailtrain。和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门。当心。

    2022.03.23 浏览:118