GNU/Linux >> Linux の 問題 >  >> Ubuntu

DockerなしでUbuntu20.04サーバーにMailtrainv1.24をインストールします

このチュートリアルでは、Dockerを使用せずにUbuntu20.04にMailtrainをインストールする方法を説明します。 Mailtrainは、オープンソースのセルフホストニュースレターアプリケーションであり、Mailchimpのような商用の電子メールサービスプロバイダーに代わるものです。 Mailtrainを使用して、独自の電子メールサーバーを介して、または任意のSMTPリレーサービス(Mailjet、SendGrid、AmazonSES、Mailgunなど)を使用して、ニュースレターを電子メールサブスクライバーに送信できます。

更新MailtrainV2がリリースされました。新規ユーザーはV1.24ではなくV2を使用する必要があります :Ubuntu20.04サーバーにMailtrainv2をインストールする方法

Mailtrainは、Node.jsおよびMySQL/MariaDB上に構築されたGPLv3.0ライセンスの条件の下でリリースされます。最新バージョンはv1.24.1で、2018年9月28日にリリースされました。Mailtrainの機能は次のとおりです。

  • 大規模なメーリングリスト(100万人の加入者など)を簡単に管理できます。
  • APIを使用して手動でサブスクライバーを追加するか、CSVファイルからインポートできます。
  • カスタムフィールド(テキストフィールド、数値、ドロップダウン、またはチェックボックス)、マージタグ、カスタムフォームをサポートしています。
  • リストのセグメンテーション。
  • RSSキャンペーン:RSSフィードからニュースレターを自動生成し、購読者に送信します。
  • サブスクライバーはGPG公開鍵をアップロードでき、Mailtrainはニュースレターを暗号化します。
  • すべてのリンクの個々のクリック統計を確認できます。
  • 高度なメールテンプレートエディタとHTMLコードエディタ。
  • 自動化:ユーザーが事前定義されたトリガーをアクティブにしたときに特定のメールを送信します。
  • オープンメーリングリスト(公開サブスクリプションを許可)とクローズドメーリングリスト(サブスクライバーは管理者によってリストに追加されます)を作成できます。
  • 古いメールキャンペーンを再開できます(古いキャンペーンを新しいサブスクライバーに送信します)。

ステップ1:適切なホスティングプロバイダーを選択する

セルフホスティングはあなたにたくさんのお金を節約することができます。 Mailtrainは無料のオープンソースソフトウェアです。フル機能のメールサーバーとMailtrainメールマーケティングプラットフォームを実行できるVPS(仮想プライベートサーバー)に月額26ドルを支払うだけで済みます。何百万ものサブスクライバーを簡単に処理できます。したがって、サブスクライバーの数に関係なく、合計コストは常に月額$26です 。 MailChimpで数百万のサブスクライバーを所有している場合、コストは1か月あたり数千ドルになります。

メールホスティングやメールマーケティングに適したVPS(仮想プライベートサーバー)プロバイダーを見つけるのは簡単なことではありません。 DigitalOceanのような多くのホスティング会社はポート25をブロックします。DigitalOceanはポート25のブロックを解除しないため、ブロックをバイパスするようにSMTPリレーを設定する必要があり、追加の費用がかかる可能性があります。 Vultr VPSを使用する場合、ポート25はデフォルトでブロックされます。サポートチケットを開くとブロックを解除できますが、メール送信アクティビティが許可されていないと判断した場合は、いつでもブロックを解除できます。 Vultrのサーバーを使用してニュースレターを送信すると、Vultrは実際に再ブロックする可能性があります。

もう1つの問題は、DigitalOceanやVultrなどの有名なホスティングプロバイダーがスパマーに悪用されていることです。多くの場合、サーバーのIPアドレスはいくつかのブラックリストに含まれています。 Vultrでは、IP範囲全体がブラックリストに登録されています。

ScalaHostingは、メールサーバーを実行するための非常に優れたオプションです。

  • ポート25をブロックしません。
  • IPアドレスはメールのブラックリストに含まれていません。 (少なくとも私の場合はそうです。ダラスのデータセンターを選択しました。)恐ろしいMicrosoftOutlookIPブラックリストまたはSpamRatsブラックリストにリストされたくないことは間違いありません。一部のブラックリストはIP範囲全体をブロックし、この種のブラックリストからIPアドレスを除外する方法はありません。
  • PTRレコードを編集して、メールの配信可能性を向上させることができます。
  • noでメール購読者にニュースレターを送信できます 時間制限または日制限、何でも。 未承諾とも呼ばれるスパムを送信することは許可されていないことに注意してください。 バルクメール。受信者が明示的にメール送信の許可を与えておらず、あなたがメールを送信した場合、それは迷惑メールです。

以下にリンクされているチュートリアルに従って、ScalaHostingでLinuxVPSサーバーを適切にセットアップすることをお勧めします。クーポンコードlinuxbabe2021を使用する ScalaHosting支払いページ 100ドル節約 12か月前払いを選択した場合。

  • ScalaHostingでLinuxVPSサーバーを作成する方法

ドメイン名も必要です。 NameCheapからドメイン名を登録したのは、価格が安く、whoisのプライバシー保護が一生無料になるからです。

独自のメールサーバーをまだお持ちでない場合は、無料のiRedMailプログラムを使用して、Mailtrainをインストールする前に独自のメールサーバーをすばやくセットアップすることをお勧めします。これにより、商用SMTPリレーサービスにお金をかける必要がなくなります。

ステップ2:MariaDBデータベースサーバーをインストールする

サブスクライバーデータはデータベースに保存されます。 MailtrainはMySQLとMariaDBをサポートしています。 MariaDBは、MySQLのドロップイン代替品です。これは、OracleがMySQLをクローズドソース製品に変える可能性があることを懸念しているMySQLチームの元メンバーによって開発されました。それでは、MariaDBデータベースサーバーをインストールしましょう。

次のコマンドを入力して、Ubuntu20.04にインストールします。

 sudo apt install mariadb-server mariadb-client 

インストール後、MariaDBサーバーは自動的に開始されます。 systemctlを使用します ステータスを確認します。

 systemctl status mariadb 

サンプル出力:

●mariadb.service-MariaDB10.3.22データベースサーバーロード済み:ロード済み(/lib/systemd/system/mariadb.service;有効;ベンダープリセット:e>アクティブ:月曜日からアクティブ(実行中)2020-04-20 15 :31:14 HKT; 52秒前ドキュメント:man:mysqld(8)https://mariadb.com/kb/en/library/systemd/メインPID:1826628(mysqld)ステータス:"SQLリクエストを今すぐ取得しています... "タスク:30(制限:9451)メモリ:73.0M CGroup:/system.slice/mariadb.service└─1826628/ 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.3.22-MariaDB、readline 5.2を使用したdebian-linux-gnu(x86_64)用

ステップ3: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コンソールを終了します。

フラッシュ特権;終了;

ステップ4:Node.jsをインストールする

Mailtrainは、人間が読めるJavaScriptコードをマシンコードに変換するJavaScriptランタイム環境であるNode.js上に構築されています。したがって、Mailtrainを実行するには、Ubuntu20.04にNode.jsをインストールする必要があります。 MailtrainにはNode.js7以降が必要です。 Node.jsの最新バージョンはv14です。ただし、Mailtrain v1.24と互換性がないため、最新バージョンの使用はお勧めしません。最高の互換性を得るには、SnapStoreからNode.js8をインストールすることをお勧めします。

公式のAPTリポジトリからNode.jsをインストールした場合は、SnapバージョンのNode.jsに干渉するため、アンインストールする必要があります。

 sudo apt remove nodejs 

次に、スナップデーモンをインストールします。

 sudo apt install snapd 

Snap StoreにはNode.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 cla ssic 12 /候補:↑12 /ベータ:↑12 /エッジ:↑11 /安定:11.15.0 2019-06-26(2336)19MBクラシック11 /候補:↑11 /ベータ:↑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 /エッジ:↑

8/stableチャネルからNode.jsをインストールできます。

 sudo snap install node --classic --channel =8 / stable 

Node.jsとnpmのバージョンを確認するには、

を実行します。
 node -vnpm -v 

出力:

:サーバーにSnapパッケージを初めてインストールする場合は、スナップバージョンのRubyを使用するために、ログアウトしてから再度ログインする必要があります。

npmからネイティブアドオンをコンパイルしてインストールするには、ビルドツールもインストールする必要があります:

 sudo apt install -y build-essential 

ステップ5: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 mailtrain  

Production.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 / 

Python2.7をインストールし、シンボリックリンクを作成します。

 sudo apt install python2.7sudo ln -s /usr/bin/python2.7 /usr/bin/python 

そして、必要なノードパッケージをインストールします。

 cd / var / www / mailtrainsudo -u mailtrain npm config set scripts-prepend-node-path truesudo -u mailtrain npm install --no-progress --production --unsafe-perm =true 

Mailtrainsystemdサービスユニットファイルを/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へ 。そして、/usr/bin/nodeを変更します /snap/bin/nodeへ Node.jsのSnapバージョンを使用しているためです。

次の行をコメントアウトすることもできます。なぜなら、次の行を有効にすると、MySQL / MariaDBが再起動すると、mailtrain.service また再起動し、MySQL / MariaDBサーバーがアップグレードされている場合は、mailtrain.service 止まる。 mysql.serviceを要求する必要はないと思います 。

 Requireds =mysql.service 

このファイルを保存して閉じます。次に、mailtrain.serviceを開始します 。

 sudo systemctl start mailtrain.service 

ステータスを確認してください。実行されていることを確認してください。

 systemctl status mailtrain.service 

出力:

●mailtrain.service-Mailtrainサーバーロード済み:ロード済み(/etc/systemd/system/mailtrain.service;無効;ベンダープリセット:有効)アクティブ:Sun 2020-04-26 10:26:37以降アクティブ(実行中) HKT; 11秒前メインPID:3058360(メールトレイン)タスク:20(制限:9451)メモリ:228.6M Cグループ:/system.slice/mailtrain.service├─3058360メールトレイン└─3058396/ snap / node / 2310 / bin / node / var /www/mailtrain/services/sender.js 

システムの起動時に自動起動を有効にします。

 sudo systemctl enable mailtrain.service 

Mailtrainが実行されているので、ポート3000を介してMailtrainWebインターフェースにアクセスできます。

 your-server-ip:3000 

ステップ6:リバースプロキシを設定してHTTPSを有効にする

Mailtrain Webインターフェースを使用する前に、それをNginxの背後に置き、HTTPSを有効にしましょう。次のコマンドを使用して、Ubuntu20.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のような独自のドメイン名へのパラメータ 。このサブドメインのDNSAレコードを作成することを忘れないでください。

 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 

ステップ7:Let’sEncryptを使用してHTTPSを有効にする

Let’s Encryptクライアント(certbot)をUbuntu20.04サーバーにインストールします。

 sudo apt install certbot python3-certbot-nginx 

次に、Nginxプラグインを使用して、次のコマンドを実行することにより、TLS証明書を自動的に取得してインストールできます。

 sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -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の機能をテストするためのリストを作成できます。

Redisキャッシュを有効にする方法

セッションキャッシュ用にRedisサーバーをインストールできます。これにより、Mailtrainはデフォルトの単一プロセスの代わりに5つのプロセスを実行できるようになり、多数の電子メールサブスクライバーがいる場合に電子メール配信が高速化されます(これにより、約250MBのようにメモリ使用量が増加することに注意してください)。

 sudo apt install redis 

インストール後、Redisが自動的に起動します。次のコマンドでステータスを確認できます:

 systemctl status redis 

サンプル出力:

●redis-server.service-高度なKey-Valueストアロード済み:ロード済み(/lib/systemd/system/redis-server.service;有効;ベンダープリセット:有効)アクティブ:Sun 2020-04以降アクティブ(実行中) -26 11:02:03 HKT; 4分23秒前ドキュメント:http://redis.io/documentation、man:redis-server(1)メインPID:3059455(redis-server)タスク:4(制限:9451)メモリ:2.3M CGroup:/system.slice /redis-server.service└─3059455/usr/ bin / redis-server 127.0.0.1:6379 

実行されていない場合は、次のコマンドで開始できます:

 sudo systemctl start redis 

起動時に自動起動を有効にする:

 sudo systemctl enable redis 

次に、Mailtrain構成ファイルを編集します。

 sudo nano /var/www/mailtrain/config/production.toml 

ファイルの最後に次の2行を追加して、Redisを有効にします。

 [redis] enabled =true 

ファイルを保存して閉じます。次に、Mailtrainを再起動します。

 sudo systemctl restart 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 HandldingUse 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 Typeradio buttonを選択できます (単一選択の場合)またはcheckboxes (複数の選択肢の場合)。 Group内 、このフィールドはオプションのグループになるため、何も選択しないでください。

次に、オプションごとにカスタムフィールドを作成します。 option for a group valueを選択する必要があります Field TypeGroupで以前のカスタムファイル名を選択します 。

フィールドタイプを変更する方法

デフォルトでは、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日間にメールを開かなかったユーザーのセグメントを作成してから、そのユーザーのメールアドレスを削除できます。このセグメントのルールは次のとおりです。

RAM要件

Mailtrainはかなり多くのRAMを使用できます。サーバーに少なくとも1GBの空きRAMがあることを確認してください。たとえば、現在のRAM使用量が4GBの場合、RAMの合計は少なくとも5GBである必要があります。 RAMが不足すると、Mailtrainのメールが返送される可能性があります。


Ubuntu
  1. Ubuntu 18.04 / Ubuntu 18.10 /Ubuntu19.04にDockerをインストールする方法

  2. ネットワーク接続なしで18.04サーバーをインストールしますか?

  3. ネットワーク接続なしでUbuntuサーバーをインストールするにはどうすればいいですか?

  1. Ubuntu18.04にDockerをインストールする方法

  2. SSHサーバーUbuntu22.04をインストールします

  3. Ubuntu22.04にDockerをインストールする方法

  1. UbuntuServerにDockerCE(Community Edition)をインストールする方法

  2. Ubuntu18.04にMailtrainニュースレターソフトウェアをインストールする方法

  3. Ubuntu18.04LTSサーバーにDockerをインストールする方法