私は、評価サービスを提供する一連の Web サイトの Web マスター兼主任開発者です。私はサーバー管理のバックグラウンドがなく、恥ずかしながら、システム管理者であることは私にとって非常に恐ろしいことです。基本的なコマンド ラインには慣れていますが、標準の LAMP スタックを複数のサブドメインで動作させ、電子メール サーバーを実行するために必要な無数の構成のすべてに圧倒されることがよくあります。
私はついに私を完全に困惑させるものに到達しました。最初に、基本的なサーバー構成をリストします。
- Ubuntu 12.04 を実行している VPS
- 標準の Apache、PHP、Mysql、BIND サービス
- 上記のサービスで構成された 1 つのメイン ドメイン + 4 つのサブドメイン Web サイト。そのうちの 2 つは、それぞれ 300 ~ 400 のテーブルを持つ mysql データベースを広範囲に使用します。
- Citadel 電子メール サーバー (ますます間違いと見なされるようになった選択)
- Swiftmailer (PHP からの自動メール送信用)
一部のページ (アカウントおよび評価管理に関連) は、特定のアクションが実行されると、受験者、コーチ、および/または私たちに警告メールを送信します。これらの電子メールのテキストは、mysql データベースの「ボイラープレート」テーブルから取得されます。次に、PHP で、受験者の名前、日付などの「プレースホルダー」タグがいくつか交換されます。次に、PHP コードは Swift Mailer を使用して、ローカルの Citadel 電子メール サーバーを使用して、準備されたテキストを電子メールとして送信します。 (通常は外部) アドレス。これらの電子メールのほとんどに CC が付けられており、送信したすべての自動メッセージの 2 番目の記録が提供されます。
(これは飛ばしてもかまいません) テキストを取得して処理し、メールとして送信するコードの要点は次のとおりです。
$subject = $bp['email_report_title'];
$subject = str_replace("[NAME]", $name, $subject);
$subject = str_replace("[INSTRUMENT_NAME]", $instrument_name, $subject);
$body = $bp['email_report'];
$body = str_replace("[NAME]", $name, $body);
$body = str_replace("[INSTRUMENT_NAME]", $instrument_name, $body);
$body = str_replace("[INSTRUMENT_BASE]", $instrument_base, $body);
sendEmail($email_to, $email_from, $email_cc, $subject, $body);
簡単に言うと、ここに私の問題があります。(上記のイベントの結果として) 私たちが目にする電子メールには、時々タイプミスがあり、一貫性がありません。例として、データベース内の同じ(変更されていない) 文字列から抽出された同じPHP コードを使用して、同じ日に生成および送信された自動メールのセットを示す 2 つの画像を示します。これらは内部 (CC) アカウントのスクリーンショットで、Mac Mail で表示されます。しかし、受験者の苦情によると、すべての電子メール受信者が同じテキストを見ているようです。最初の画像で、タイトルの間隔の違いに注意してください。
2 番目と 3 番目の画像では、間違ったリンクに注意してください (末尾に 2 つのピリオド)。PHP コードと mysql ソース テキストを確認しましたが、ログイン リンクがその場所に 2 つのピリオドを持つように変更される理由はまったく見つかりませんでした。編集:コメント投稿者のリクエストに基づいて、画像の下に完全な長さの電子メール テキストをコピーしました。
[名前は削除されました] の LSUA レポートが完成しました。レポートを表示するには、次のリンクをクリックしてください: https://www.devtestservice.org/security/logIn..php
ログインしたら、LSUA アイコンをクリックし、[View your report] というリンクをたどってください。
私たちの評価に対するコメントは、高度に訓練された人間によって行われますが、時には間違いを犯します。レポートに矛盾や誤りがあることに気付いた場合は、お知らせください。迅速に修正いたします。ログインまたはレポートの表示に問題がある場合は、次のリンクを使用してお問い合わせください: https://www.devtestservice.org/contactus.php
Lectica, Inc. マサチューセッツ州ノーザンプトン 01060
私たちの使命は、21世紀の課題に対応するために必要な知識とスキルの標準化された、形成的で診断的な発達評価を開発することです. 私たちの目的は 3 つあります。(1) K-18 の生徒とその教師のための魅力的で、教育的で、フィードバックが豊富な発達評価と学習リソースを構築すること、(2) 学習ニーズを診断し、成人の発達をサポートする同様に豊富な評価を作成すること(職場およびそれを超えて)、および(3)学習と将来の社会における学習の役割に関する知識を構築(および共有)すること。
このメッセージには、上記の宛先の使用のみを目的とした特権および機密情報が含まれています。他者による情報の開示、配布、コピー、または使用は固く禁じられています。このメッセージを誤って受け取った場合は、すぐに返信して送信者に知らせ、元のメッセージとすべての添付ファイルを削除してください。ありがとうございました。
背景説明が長くなってすみません。しかし、私の質問は単純です。これらのタイプミスはどのようにして発生するのでしょうか? ワークフローのどの時点で、(単純な) PHP コードによってフェッチおよび処理された (検証済みの一貫性のある) mysql データ セルが、標準の PHP -> SMTP メーラー プラグインに投入され、ランダムなタイプミスがあるように見える電子メールの作成につながる可能性があります。 ?
アイデアがあればぜひ教えてください。必要に応じて、より詳細なコードを提供できることをうれしく思います。前もって感謝します。
編集:長い件名のみスペースが削除されていることを指摘してくれた Eggyal に感謝します。このパターンは、他の古いメールにも当てはまります。また、上記の 1 つの電子メール警告の全文を提供しました。リンクの最後にある「..php」に注意してください。すべての電子メールには同じ署名欄があり、同じタイプのすべてのアラート電子メールには同じ長さの本文があります (異なる楽器名と受験者名の場合はプラスまたはマイナス 15 文字)。