このチュートリアルでは、Dockerを使用せずにUbuntu18.04にMailtrainをインストールする方法を説明します。 Mailtrainは、オープンソースのセルフホストニュースレターアプリであり、Mailchimpのような商用メールサービスプロバイダーに代わるものです。 Mailtrainを使用して、独自のメールサーバーを介して、またはSMTPリレーサービス(Mailjet、SendGrid、AmazonSES、Mailgunなど)を使用して、メールサブスクライバーにメールを送信できます。
Mailtrainは、Node.jsおよびMySQL/MariaDB上に構築されたGPLv3.0ライセンスの条件の下でリリースされます。最新バージョンはv1.24.1で、2018年9月28日にリリースされました。Mailtrainの機能は次のとおりです。
- 大規模なメーリングリスト(100万人の加入者など)を簡単に管理できます。
- APIを使用して手動でサブスクライバーを追加するか、CSVファイルからインポートできます。
- カスタムフィールド(テキストフィールド、数値、ドロップダウン、またはチェックボックス)、マージタグ、カスタムフォームをサポートしています。
- リストのセグメンテーション。
- RSSキャンペーン:RSSフィードからニュースレターを自動生成し、購読者に送信します。
- サブスクライバーはGPG公開鍵をアップロードでき、Mailtrainはニュースレターを暗号化します。
- すべてのリンクの個々のクリック統計を確認できます。
- 高度なメールテンプレートエディタとHTMLコードエディタ。
- 自動化:ユーザーが事前定義されたトリガーをアクティブにしたときに特定のメールを送信します。
- オープンメーリングリスト(公開サブスクリプションを許可)とクローズドメーリングリスト(サブスクライバーは管理者によってリストに追加されます)を作成できます。
- 古いメールキャンペーンを再開できます(古いキャンペーンを新しいサブスクライバーに送信します)。
前提条件
Mailtrainを実行するには、少なくとも1GBのRAMを搭載したサーバーが必要です。この特別なリンクをクリックすると、DigitalOceanで$50の無料クレジットを獲得できます。 (新規ユーザーのみ)。すでにDigitalOceanユーザーである場合は、この特別なリンクをクリックして、Vultrで$ 50の無料クレジットを取得できます(新規ユーザーのみ)。 DigitalOceanまたはVultrでアカウントを取得したら、サーバーにUbuntu 18.04をインストールし、以下の手順に従います。
ドメイン名も必要です。ドメイン名をNameCheapから登録しました。これは、価格が低く、whoisのプライバシー保護が無料で提供されるためです。
Dockerを使用せずにUbuntu18.04にMailtrainをインストールする
前のチュートリアルでは、Dockerを使用してMailtrainをインストールする方法を説明しました。 Dockerは、アプリケーションをすばやく起動して実行したい人に最適ですが、リソースを非常に消費します。 Dockerを使用してMailtrainがインストールされている1GBRAMのVPSでは、RAMが不足しているため、MySQLコンテナがシャットダウンすることがよくあります。そこで、Ubuntu18.04にMailtrainをインストールするRAMに適した方法を紹介します。これにより、約400MBのRAMを節約できます。
注:Mailtrainはインストールスクリプトを提供しますが、古くなっている可能性があり、インストールスクリプトの実行時にエラーが発生する可能性があります。このチュートリアルでは、各ステップについて説明し、その仕組みを理解してインストールできるようにします。
ステップ1:MariaDBデータベースサーバーをインストールする
サブスクライバーデータはデータベースに保存されます。 MailtrainはMySQLとMariaDBをサポートしています。 MariaDBは、MySQLのドロップイン代替品です。これは、OracleがMySQLをクローズドソース製品に変える可能性があることを懸念しているMySQLチームの元メンバーによって開発されました。それでは、MariaDBデータベースサーバーをインストールしましょう。
次のコマンドを入力して、Ubuntu18.04にインストールします。
sudo apt install mariadb-server mariadb-client
インストール後、MariaDBサーバーは自動的に開始されます。 systemctlを使用します ステータスを確認します。
systemctl status mariadb
サンプル出力:
●mariadb.service-MariaDB10.1.34データベースサーバーロード済み:ロード済み(/lib/systemd/system/mariadb.service;有効;ベンダープリセット:有効)アクティブ:アクティブ(実行中)2018年9月8日土曜日以降11 :13:27 UTC; 21秒前ドキュメント:man:mysqld(8)https://mariadb.com/kb/en/library/systemd/メインPID:3473(mysqld)ステータス:「SQLリクエストを今すぐ取得しています...」タスク:27(制限:505)CGroup:/system.slice/mariadb.service└─3473/ usr / sbin / mysqld
実行されていない場合は、次のコマンドで開始します:
sudo systemctl start mariadb
MariaDBがシステムの起動時に自動的に起動できるようにするには、
を実行します。sudo systemctl enable mariadb
次に、インストール後のセキュリティスクリプトを実行します。
sudo mysql_secure_installation
MariaDBのrootパスワードの入力を求められたら、rootパスワードがまだ設定されていないため、Enterキーを押します。次に、y
と入力します MariaDBサーバーのルートパスワードを設定します。
次に、Enterキーを押して残りのすべての質問に答えることができます。これにより、匿名ユーザーが削除され、リモートrootログインが無効になり、テストデータベースが削除されます。このステップは、MariaDBデータベースセキュリティの基本的な要件です。 (文字Y
大文字で表示されます。これは、デフォルトの回答であることを意味します。)
MariaDBサーバーのバージョン情報を確認してください。
mariadb --version
出力:
mariadb Ver 15.1 Distrib 10.1.34-MariaDB、readline 5.2を使用したdebian-linux-gnu(x86_64)用
ステップ2:Mailtrainのデータベースとユーザーを作成する
次に、MariaDBコンソールにログインして、Mailtrainのデータベースとユーザーを作成する必要があります。デフォルトでは、UbuntuのMaraiDBパッケージは unix_socketを使用します ユーザーログインを認証します。これは基本的に、OSのユーザー名とパスワードを使用してMariaDBコンソールにログインできることを意味します。したがって、次のコマンドを実行して、MariaDBのrootパスワードを指定せずにログインできます。
sudo mariadb -u root
次のコマンドを使用して、Mailtrainのデータベースを作成します。 mailtrain
という名前を付けました 、ただし、好きな名前を使用できます。 (セミコロンを省略しないでください。)
データベースメールトレインを作成します;
次に、以下のコマンドを入力してMailtrainのデータベースユーザーを作成し、mailtrainデータベースのすべての権限をユーザーに付与します。 mtuser
を置き換えます およびyour-password
ご希望のユーザー名とパスワードを使用してください。
mailtrain。*のすべての権限を'mtuser_password'で識別されるmtuser@localhostに付与します;
次に、mailtrainデータベースへの読み取り専用アクセス権を持つユーザーを作成します。このユーザーにmt_readonly
という名前を付けました 。
mailtrainでselectを付与します。*'mt_readonly_password'で識別されるmt_readonly@localhostに;
変更を有効にするために特権テーブルをフラッシュしてから、MariaDBコンソールを終了します。
フラッシュ特権;終了;
ステップ3:Node.jsをインストールする
MailtrainはNode.jsに基づいて構築されています。これは、人間が読めるJavaScriptコードをマシンコードに変換するJavaScriptランタイム環境です。したがって、Mailtrainを実行するには、Ubuntu18.04にNode.jsをインストールする必要があります。 MailtrainにはNode.js7以降が必要です。このチュートリアルでは、NodeSourceリポジトリからNode.js(V8.x)の現在のLTSリリースをインストールします。
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -sudo apt install -y nodejs
注:Node.jsの最新のLTSリリースはv12になりましたが、Mailtrainv1.24.1では機能しません。
nodejs
パッケージにはnpm(Node.jsパッケージマネージャー)バイナリが含まれているため、個別にインストールする必要はありません。 Node.jsとnpmのバージョンを確認するには、
node -vnpm -v
出力:
npmからネイティブアドオンをコンパイルしてインストールするには、ビルドツールもインストールする必要があります:
sudo apt install -y build-essential
ステップ4:Mailtrainを実行する
/var/www/
に移動します GithubからMailtrainファイルをフェッチします。
cd / var / www / sudo git clone https://github.com/Mailtrain-org/mailtrain.git
次のコマンドを使用して、初期SQLデータをmailtrainデータベースにインポートします。 mtuser
のパスワードを入力する必要があります 。
mariadb -u mtuser -p mailtrainProduction.toml構成ファイルを作成します。
sudo nano /var/www/mailtrain/config/production.tomlこのファイルでは、
/var/www/mailtrain/config/default.toml
のデフォルト構成を上書きする構成を追加できます。 ファイル。次の構成を追加するだけで済みます。user ="mailtrain" group ="mailtrain" [log] level ="error" [www] secret="これをランダムな文字に置き換えてください"[mysql]user ="mtuser" password ="mtuser_password" [queue]プロセス=5ファイルを保存して閉じます。次に、
mailtrain
を作成します mailtrainデーモンを実行するためのユーザーとグループ。このユーザーのパスワードを作成する必要がないため、通常のユーザーではなくシステムユーザーを作成することに注意してください。sudo adduser --system --group mailtrainレポートワーカーの構成ファイルを作成します。
sudo nano /var/www/mailtrain/workers/reports/config/production.toml次の構成を追加します。このレポートワーカーは、メールトレインデータベースへの読み取り専用アクセス権を持ちます。
[log] level ="error" [mysql] user ="mt_readonly" password ="mt_readonly_password"ファイルを保存して閉じます。次に、
/var/www/mailtrain/
の権限を変更します 。sudo chown mailtrain:mailtrain / var / www / mailtrain / -Rsudo chmod o-rwx / var / www / mailtrain / config /そして、必要なノードパッケージをインストールします。
cd / var / www / mailtrainsudo npm install --no-progress --production --unsafe-perm =truesystemdサービスユニットファイルを
/etc/systemd/system/
にコピーします ディレクトリ。sudo cp /var/www/mailtrain/setup/mailtrain.service / etc / systemd / system /このファイルを開きます。
sudo nano /etc/systemd/system/mailtrain.service
/opt/mailtrain
を変更します/var/www/mailtrain
へ 。次の行をコメントアウトすることもできます。なぜなら、次の行を有効にすると、MySQL / MariaDBが再起動すると、mailtrain.service
また再起動し、MySQL / MariaDBサーバーがアップグレードされている場合は、mailtrain.service
止まる。mysql.service
を要求する必要はないと思います 。Requireds =mysql.serviceこのファイルを保存して閉じます。次に、
mailtrain.service
を開始します 。sudo systemctl start mailtrain.serviceステータスを確認してください。実行されていることを確認してください。
sudo systemctl status mailtrain.serviceシステムの起動時に自動起動を有効にします。
sudo systemctl enable mailtrain.serviceMailtrainが実行されたので、ポート3000を介してMailtrainWebインターフェースにアクセスできます。
your-server-ip:3000
ステップ5:リバースプロキシを設定してHTTPSを有効にする
Mailtrain Webインターフェースを使用する前に、それをNginxの背後に置き、HTTPSを有効にしましょう。次のコマンドを使用して、Ubuntu18.04にNginxWebサーバーをインストールします。
sudo apt install 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.conf次の行を見つけます。
server_name mailtrain.org www.mailtrain.org;
server_name
の値を変更しますnewsletter.your-domain.com
のような独自のドメイン名へのパラメータ 。このサブドメインのAレコードを作成することを忘れないでください。server_name newsletter.linuxbabe.com;ファイルを保存して閉じます。次に、Nginx構成をテストします。
sudo nginx -tテストが成功した場合は、変更を有効にするためにNginxをリロードします。
sudo systemctl reload nginxこれで、サブドメイン
newsletter.your-domain.com
を介してMailtrainWebインターフェースにアクセスできるようになります。 。次に、
/var/www/mailtrain/config/production.toml
を編集します ファイル。sudo nano /var/www/mailtrain/config/production.toml
[www]
で セクションに次の2行を追加して、mailtrainがNginxプロキシの背後にあることを示し、ローカルホストアドレスでのみリッスンするようにします。host ="127.0.0.1" proxy =trueファイルを保存して閉じます。次に、Mailtrainを再起動して、変更を有効にします。
sudo systemctl restart mailtrainステップ6:Let’sEncryptを使用してHTTPSを有効にする
Let’s Encryptクライアント(certbot)をUbuntu18.04サーバーにインストールします。
sudo apt install software-properties-commonsudo add-apt-repository ppa:certbot / certbotsudo 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接続を介してMailtrainWebインターフェースにアクセスできます。
htop
コマンドは、サーバーが約500MBのRAMを使用していることを示しています。 DockerでMailtrainを実行すると、約900MBになります。
ユーザー名
注:管理者アカウントは、ハッカーにとって簡単な標的です。最高のセキュリティを確保するために、ユーザー名をadmin
でログインします とパスワードtest
。次に、アカウントのメールアドレスとパスワードを変更します。settings
に移動します デフォルト設定を変更するページ。サービスアドレスをhttp://localhost:3000/
から変更する必要があります サブドメイン(https://newsletter.your-domain.com
。admin
から変更することをお勧めします 他の何かに。 Mailtrain Webインターフェースにはそのようなオプションはありませんが、SQLコマンドを使用してMariaDBデータベースのユーザー名を変更できます。
Mailer Settings
、独自のメールサーバーがある場合、またはAmazon SESを使用している場合は、SMTPを使用できます。実際には、SMTP
で他のSMTPリレーサービスを使用することもできます タブ。下のスクリーンショットでは、自分のメールサーバーを使用しています。メールはSTARTTLS暗号化を使用してポート587で送信されます。
メールサーバーがメールサーバーにインストールされている場合は、次のSMTP設定を使用する必要があります。ホスト名は127.0.0.1、ポートは25である必要があります。ローカルホストと通信するときに暗号化や認証を有効にする必要はありません。
設定を保存します。次に、Mailtrainの機能をテストするためのリストを作成できます。
メールトレインでバウンスメッセージを処理する方法
遅かれ早かれ、メーリングリストにはメールを送信できないアドレスが含まれるようになります。たとえば、会社の電子メールアドレスを使用する加入者が会社を辞めると、その電子メールアドレスは削除されます。そのため、メールサーバーはメールを配信できないことを示すバウンスメッセージを受信します。
SMTPリレーサービスを使用して電子メールを送信する場合、SMTPリレーサービスがバウンスメッセージを処理します。独自のメールサーバーを使用してメールを送信する場合は、Mailtrainでバウンスメッセージを処理する必要があります。 Mailtrainには、バウンスメッセージを処理する2つの方法があります。
- VERP経由
- Postfixログ経由
私は個人的にVERP方式を使用しています。これは、メールコミュニティで広く使用されており、2番目の方式ではサーバーのCPU使用率が高くなるためです。
VERPバウンス処理
VERP(可変エンベロープリターンパス)を使用すると、メーリングリストマネージャーはサブスクライバーごとに一意のエンベロープアドレスを使用します。 VERPを有効にするには、production.toml
を編集します ファイル。
sudo nano /var/www/mailtrain/config/production.toml
MailtrainホストでSMTPサーバーが実行されていない場合は、次のテキストを追加します。
[verp] enabled =trueport =25disablesenderheader =true
MailtrainサーバーでPostfixなどのSMTPサーバーが実行されている場合は、次のテキストを追加します。バウンス処理サーバーは127.0.0.1:2525
でリッスンします 。
[verp] enabled =true port =2525 host ="127.0.0.1" disablesenderheader =true
ファイルを保存して閉じます。次に、Mailtrainを再起動して、変更を有効にします。
sudo systemctl restart mailtrain
Mailtrain Webインターフェースで、settings
に移動します ->VERP Bounce Handlding
。 Use VERP to catch bounces
を確認します 。設定を保存します。
次に、サーバーのホスト名(bounces.your-domain.com
)のMXレコードを作成する必要があります )次に、このホスト名のAレコードを追加し、Mailtrainホストを指すようにして、バウンスメッセージをMailtrainホストに送信できるようにします。リスト内の各サブスクライバーには、[email protected]
のような一意のエンベロープアドレスがあります。 。
ドメイン名にDMARCレコードをデプロイした場合は、SPFアライメントをリラックスモードに設定する必要があることに注意してください。厳密モードに設定されている場合、ニュースレターはDMARCチェックに失敗する可能性があります。
Mailtrainバウンス処理サーバーが127.0.0.1のポート2525でリッスンしていて、Postfix SMTPサーバーがパブリックIPアドレスのポート25でリッスンしている場合、PostfixがバウンスメッセージをMailtrainに中継できるようにトランスポートマップを設定する必要があります。路線図ファイルを作成します。
sudo nano / etc / postfix /transport
このファイルに次の行を追加します。これにより、Postfixは[email protected]
のようなアドレスのメールを中継するようになります。 Mailtrainバウンス処理サーバーに送信します。
bounces.your-domain.com smtp:[127.0.0.1]:2525
ファイルを保存して閉じます。次に、インデックスファイルを生成します。
sudo postmap / etc / postfix /transport
Postfixのメイン設定ファイルを編集します。
sudo nano /etc/postfix/main.cf
次の行をファイルに追加します。
transport_maps =hash:/ etc / postfix /transport
注:iRedMailを使用してメールサーバーを設定した場合は、transport_maps
パラメータには他の値があります。以下のように最後に値を追加する必要があります。
transport_maps =proxy:mysql:/etc/postfix/mysql/transport_maps_user.cf proxy:mysql:/etc/postfix/mysql/transport_maps_maillist.cf proxy:mysql:/etc/postfix/mysql/transport_maps_domain.cf hash:/ etc / postfix / Transportation
ファイルを保存して閉じます。次に、変更を有効にするためにPostfixを再起動します。
sudo systemctl restart postfix
Postfixログを介したバウンスメッセージの処理
これは、Mailtrainがメールサーバーにインストールされていることを前提としています。
Mailtrainは、status=bounced
を含む行を見つけることで、Postfixメールログからバウンスされたメッセージを検出できます。 。まず、Postfixログ読み取りサーバーを有効にする必要があります。 production.toml
を編集します ファイル。
sudo nano /var/www/mailtrain/config/production.toml
次のテキストを追加します。
[postfixbounce] enabled =true
ファイルを保存して閉じます。次に、Mailtrainを再起動して、変更を有効にします。
sudo systemctl restart mailtrain
これで、Postfixログ読み取りサーバーは127.0.0.1:5699でリッスンしています。 Postfixログを読み取らせるには、次のコマンドを実行します。
tail -F /var/log/mail.log | nc localhost 5699-
バックグラウンドで実行するために、systemdサービスユニットを作成できます。
sudo nano /etc/systemd/system/bouncetail.service
次のテキストを追加します。
[Unit] Description =Postfix bounce notifierAfter =mailtrain.service [Service] ExecStart =/ bin / sh -c'/usr/bin/tail -F /var/log/mail.log | nc localhost 5699 -'Type =simpleRestart =alwaysRestartSec =10 [Install] WantedBy =multi-user.target
ファイルを保存して閉じます。次に、このサービスを開始し、起動時に自動開始を有効にします。
sudo systemctl start bouncetailsudo systemctl enable bouncetail
メールトレインサービスを再開した後は、必ずバウンステールサービスを再開してください。バウンステールサービスによりサーバーのCPU使用率が高くなることがわかったため、この方法は使用しません。
更新
自分のサーバーでMailtrainをしばらく使用した後、それらが電子メールのバウンスを引き起こす他の理由であることがわかりました。以下はソフトバウンスです。
- 受信者のメールボックスがいっぱいです。
- あなたのIPアドレスはブラックリストに載っています。
- 受信者のメールサーバーがダウンしているかオフラインになっています。
ハードバウンスもあります。つまり、受信者のメールアドレスが存在しません。デフォルトでは、Mailtrainは、1回のバウンスが検出された場合にメールアドレスの登録を解除します。これはハードバウンスには問題ありませんが、不正なメールアドレスの登録を解除する前に、ソフトバウンスを数回許可することをお勧めします。受信側の電子メールサーバーに、ブラックリストからIPアドレスを削除してから、関連する電子メールアドレスを再サブスクライブするように依頼できます。
メールトレインに画像をアップロードする
Mailtrainに画像をアップロードするには、imagemagick
をインストールする必要があります パッケージ。これがないと、画像をアップロードするときにMailtrainがエラーをスローする可能性があります。
sudo apt install imagemagick
ウェブサイトに登録フォームを挿入する方法
まず、オリジン間リソース共有を有効にする必要があります。 production.toml
を編集します ファイル。
sudo nano /var/www/mailtrain/config/production.toml
ファイルに次の行を追加して、Webサイトをホワイトリストに登録します。
[cors]#サブスクリプションウィジェットの埋め込みを許可するorigins =['https://www.example.com']
ファイルを保存して閉じます。次に、Mailtrainを再起動して、変更を有効にします。
sudo systemctl restart mailtrain
次に、Webサイトに次のコードを追加して、サインアップフォームを表示します。赤い色のテキストをMailtrainドメイン名と独自のリストIDに置き換えます。
次に、カスタムCSSルールを追加して、視覚的に魅力的なものにします。
Mailtrainで追加のユーザーを作成する方法
Mailtrain v2を使用すると、管理者はきめ細かいユーザー権限と柔軟な共有を備えた複数のユーザーを作成できます。ただし、現在のバージョンv.1.24.1では、データベースを介してのみユーザーを作成できます。 MySQL/MariaDBコンソールにログインします。
sudo mysql -u root
mailtrain
を使用する データベース。
USE mailtrain;
次に、次のSQLコマンドを使用してユーザーエントリを作成します。
INSERT INTO `users`(` username`、 `password`、` email`、 `access_token`、` reset_token`、 `reset_expire`、` created`)VALUES('your-username'、PASSWORD( "your- password ")、'[メール保護]'、NULL、NULL、NULL、NOW());
データベースサーバーを終了します。
EXIT;
この方法で作成されたユーザーは、MailtrainWebインターフェイスに初めてログインできないことがわかりました。ユーザーは、ログインページの「パスワードを忘れた場合」リンクを使用してパスワードをリセットする必要があります。そうすると、ログインが機能するはずです。また、すべてのユーザーがMailtrainWebインターフェースの管理者権限を持っていることに注意してください。
MailChimpからメーリングリストをインポートする方法
まず、Audience
に移動する必要があります MailChimpダッシュボードのタブ。 View Contacts
をクリックします すべてのサブスクライバーを表示するボタン。次に、Export Audience
をクリックします ボタンをクリックして、リストをCSVファイルとしてエクスポートします。
次に、Mailtrainダッシュボードに移動し、メールリストを選択します。 List Actions
を選択します ドロップダウンボタンをクリックし、[Import Subscribers
]をクリックします 。
次のページでは、MailChimpからダウンロードしたCSVファイルをアップロードする必要があります。
次に、MailChimpのフィールドをMailtrainメーリングリストのフィールドと一致させる必要があります。 MailChimpの一部のフィールドがMailtrainメーリングリストに存在しない場合は、Mailtrainダッシュボードで作成できます。
MailChimpフィールドにラジオボタンが含まれている場合は、Mailtrainフィールドにもラジオボタンを作成する必要があることに注意してください。ただし、ラジオボタンの値に基づいてMailChimpリストをセグメント化し、これらのセグメントを別のCSVファイルにエクスポートして、一度に1セグメントずつMailtrainにインポートする必要があります。これは、MailtrainがMailChimpの各ラジオボタンの値を一致させる方法を提供していないためです。
未購読の電子メールアドレスを自動的にクリーンアップするcronジョブ
購読していないメールアドレスは、MailtrainのWebベースの管理パネルで手動で削除できますが、MySQL / MariaDBコマンドを使用して削除する方がはるかに効率的で、Cronジョブを作成するだけでこのタスクを自動化できます。
まず、MySQL/MariaDBデータベースサーバーにログインします。
sudo mysql -u root
次に、メールトレインデータベースに接続します。
メールトレインを使用する;
サブスクライバーの情報はsubscription
に保存されます テーブル。複数のメーリングリストがある場合は、複数のsubscription
があります。 テーブル。次のSQLコマンドを使用して、これらすべてのテーブルを一覧表示できます。
'subscription%'のようなテーブルを表示します;
サーバーに出力します。
+ ------------------------------------- + | Tables_in_mailtrain(subscription%)| + ------------------------------------- + |サブスクリプション||サブスクリプション__1|| Subscription__2 | + ------------------------------------- +
最初のテーブルは空のテーブルです。 Mailtrainには2つのリストがあります。それらはsubscription__1
に保存されます およびsubscription__2
テーブル。購読しているメールアドレスのステータスコードは1
に設定されています 。未登録のメールアドレスのステータスコードは2
に設定されています 。したがって、サブスクライブされていない電子メールアドレスを削除するには、次のSQLコマンドを実行できます。
DELETE FROM Subscription__1 where status ='2'; DELETE FROM Subscription__2 where status ='2';
MySQL / MariaDBデータベースサーバーを終了するには、
を実行します。終了;
次に、rootユーザーのcrontabファイルを開きます。
sudo crontab -e
次の2行を追加します。
#未購読のメールアドレスをメーリングリストから毎日削除@ daily @ usr / bin / mysql -u root mailtrain -Bse "DELETE FROM Subscription__1 where status ='2'; DELETE FROM Subscription__2 where status ='2';"
ファイルを保存して閉じます。これで完了です。
メールトレインでメーリングリストをエクスポートする方法
Mailtrain管理パネルにはエクスポートボタンはありません。ただし、サーバーにphpMyAdminをインストールしている場合は、そこからメーリングリストをエクスポートできます。 phpMyAdminでメールトレインデータベースを選択してから、メールリストを保存するテーブルを選択します。私の場合、subscription__1
およびsubscription__2
テーブルにはサブスクライバーの情報が格納されます。
次に、export
をクリックします ボタンをクリックして、テーブルをファイルとして保存します。 2つのエクスポートボタンがあることに注意してください。テーブル全体をエクスポートするには、2番目のエクスポートボタンをクリックする必要があります。最初のエクスポートボタンは、テーブルに現在表示されているレコードのみをエクスポートします。
次に、エクスポートファイルのファイル形式を選択できます。最後に、[移動]ボタンをクリックします。
メールトレインのホームページを非表示にする方法
訪問者にメールトレインのホームページを表示させたくない場合は、メールトレインのNginx構成ファイルに次のコードを追加することで、訪問者をWebサイトのホームページにリダイレクトする301永続リダイレクトを設定できます。
location =/ {return 301 http://www.your-domain.com;}
ファイルを保存して閉じます。次に、変更を有効にするためにNginxをリロードします。
sudo systemctl reload nginx
MailtrainのログインURLを覚えておく必要があります。
https://newsletter.your-domain.com/users/login
デフォルトでは、ログインボタンはMailtrainホームページにリダイレクトするため、別のURLを覚えておく必要があります。
https://newsletter.your-domain.com/lists
これにより、ダッシュボードでリストやその他のものを管理できます。
登録フォームにオプションを挿入する方法
サインアップフォームで訪問者が選択できるオプションを指定する場合は、カスタムフィールドを作成する必要があります。リストに移動して、custom fields
を選択します List Actions
ドロップダウンメニューを使用して、カスタムフィールドを作成します。
まず、オプションリストのヘッダー質問となるフィールドを作成する必要があります。 Field Type
、radio button
を選択できます (単一選択の場合)またはcheckboxes
(複数の選択肢の場合)。 Group
内 、このフィールドはオプションのグループになるため、何も選択しないでください。
次に、オプションごとにカスタムフィールドを作成します。 option for a group value
を選択する必要があります Field Type
、Group
で以前のカスタムファイル名を選択します 。
フィールドタイプを変更する方法
デフォルトでは、Mailtrain Webインターフェースではファイルの種類を変更できませんが、mailtrainデータベースで変更できます。たとえば、フィールドタイプをcheckboxes
から変更する必要があります radio button
へ 。
データベース内の何かを変更する前に、データベースをバックアップすることをお勧めします。次のコマンドを実行して、メールトレインデータベースをバックアップできます。
sudo mysqldump -u root mailtrain> mailtrain.sql
次に、MariaDBデータベースサーバーにログインします。
sudo mysql -u root
mailtrain
を使用する データベース。
USE mailtrain;
すべてのカスタムフィールドはcustom_fields
に保存されます テーブル。その内容は次の方法で確認できます:
SELECT * FROM custom_fields;
変更するカスタムフィールドを見つけ、次のSQLコマンドを実行してそのタイプを変更します。 ID番号を自分のものに置き換えてください。
UPDATE custom_fields SET type ='radio' Where id =3;
データベースサーバーを終了します。
EXIT;
メールトレインでメーリングリストをクリーンアップする方法
エンゲージメントのないサブスクライバーはあなたにお金を稼ぐことはなく、彼らはあなたの電子メールを開かないので、メールボックスプロバイダーはあなたのドメインの評判を低下させます。今後のメールが確実に受信トレイに届くようにするには、メーリングリストからエンゲージメントのないサブスクライバーを削除する必要があります。
過去60日間にメールを開かなかったユーザーのセグメントを作成してから、そのユーザーのメールアドレスを削除できます。このセグメントのルールは次のとおりです。