投稿

8月, 2022の投稿を表示しています

さくらのメールボックスで使われている迷惑メールフィルタ「SpamAssassin」とは?

迷惑メールフィルタ「SpamAssassin」を調査したときの覚書。 参考サイト Apache SpamAssassin: Welcome ウェブメールでメールフィルタ機能を設定したい | さくらのサポート情報 SpamAssassin - Wikipedia SpamAssassinとは? メールサーバーに組み込めるオープンソースの迷惑メールフィルタ。 Apacheソフトウェア財団が管理運用しているので安心感がある。 主な特徴 スパムを判定するルールを柔軟に設定可能 ルールに基づきスコアを加算して一定以上の場合スパムと判定 スパムと判定したメール件名に文字列を挿入可能 デフォルトは「*****SPAM*****」 判定ルールとスコア値の結果をメールヘッダー「X-Spam-Status」として挿入 SpamAssassinが挿入するメールヘッダー さくらのメールボックスにメールアカウントを作成して、SPFを設定していないサーバーからメール送信してみた。 ユーザ/メールアドレス全体設定の迷惑メールフィルタは「弱めの設定」。 アカウント設定の迷惑メールフィルタは「フィルタを利用」に設定する。 mailコマンドで送信。 # mail [email protected] Subject: test http://1.2.3.4/?key=test . メールログを確認 # less /var/log/maillog 挿入されたメールヘッダー X-Spam-Checker-Version: SpamAssassin 3.4.3 (2019-12-06) on www1234.sakura.ne.jp X-Spam-Flag: YES X-Spam-Level: ******* X-Spam-Status: Yes, score=7.7 required=7.0 tests=BODY_SINGLE_URI, BODY_SINGLE_WORD,LOCALPART_IN_SUBJECT,NORMAL_HTTP_TO_IP, NUMERIC_HTTP_ADDR,SPF_HELO_NONE,SPF_NONE,TVD_SPACE_RATIO_MINFP autolearn=no autolearn_force=no version=3.4.3 X-Spam-Report:...

Lets Note S9にUbuntu Desktop 22.04をインストール

古いレッツノートにUbuntu Desktopをインストールしたときの覚書。 環境: Let's note CF-S9L(CF-S9LY9BDP), Intel Core i7 M640 2.8Ghz, メモリ8GB Let's note CF-S9Lは2010å¹´9月発売。 参考: パナソニック公式サイト|スペック対比表 1.Ubuntu 22.04をクリーンインストール 公式サイトのチュートリアルを参考に。 Install Ubuntu desktop | Ubuntu balenaEtcherというソフトを使ってUSBメモリにISOファイルを書き込む。 完了後にWindowsが「フォーマットしますか?」と聞いてくるがキャンセル。 USBメモリをノートPCに挿して起動。 BIOSでUSB HDDの起動順序を上位にしておく。 3分ぐらい処理が走った後Welcome画面が表示された。 言語はEnglish、キーボードはJapanese、Minimal installationを選択。 Other optionsの2つも選択。 Erase disk and install Ubuntu, None インストールは10分ぐらい。 USBメモリを抜いて再起動。 2.USBメモリをフォーマット インストールメディアとなったUSBメモリをフォーマットするにはUbuntuになったノートPCにUSBメモリを接続して、Disksアプリケーションを使う。 (macOSのDisk Utilityでも出来る) 参考:  usb - Can't format Ubuntu installation stick - Ask Ubuntu 右上のメニューからFormat Disk... No partitioningを選んでフォーマット。 左下のアイコンからFormat Partition... Volume Nameは「USB32GB」とかにして「FAT」を選択。 Windows PCに挿して確認。 3.Ubuntu Desktopの感想など 分かったことや感想など。 内臓Wi-Fiが普通に使える。 トラックパッドの右端こすってスクロール出来ない。 YouTubeが見れて音も出る。 デフォルトでインストールされているFirefoxが遅いように感じる。 Google Ch...

API経由のSMS送信に関してTwilioとAmazon SNSを調査比較

SMSと連携した予約システムを開発しているときの覚書。 SMSのAPIを提供しているのはTwilioとAmazon SNSが有名。 SMS Messaging API | Twilio Amazon SNS(サーバーレスアプリのための pub/sub メッセージングサービス)| AWS 費用はほぼ同じ1通10円ぐらい。 Twilioは米国の番号を取得して日本の番号へ国際SMSを送信する。 高品質SMSという日本国内番号から送る方法がある。 Twilioの営業担当へ要問合せ。 Twilio から050番号で SMS を送ることはできないのですか? – Twilio - KDDI Web Communications 高品質SMSとは何ですか? どのように機能しますか? – Twilio - KDDI Web Communications Amazon SNSは発信番号(送信元)を選択できる。 Amazon SNS で、SMS メッセージを送信する際に発信番号の選択をサポートできるようになりました Amazon SNS の SMS を利用する際の留意点と対策について - サーバーワークスエンジニアブログ 2022年からドコモとソフトバンクでフィッシングSMS対策が強化されている。 ドコモからのお知らせ : 「危険SMS拒否設定」(無料)の提供について(2022å¹´3月22日更新) | お知らせ | NTTドコモ 迷惑SMS対策機能(無料)を提供開始 | スマートフォン・携帯電話 | ソフトバンク 【関連記事】 Twilioで転送電話→出なかったら留守電応答→音声録音→メール送信 LINE Notifyでメールアドレスがないユーザーとの問合せ機能を実現したい

OpenLiteSpeed, Nginx, NGINX Unitを改めて調査

PHP7.4が今年末でサポート終了するタイミングでWebサーバーも見直そうと調査しているときの覚書。 特にWordPressと相性がいいOpenLiteSpeedが気になっていた。 環境: CentOS Stream 8, Nginx 1.22.0, PHP 7.4.30 1.OpenLiteSpeedとは? 商用のLiteSpeedのオープンソース版Webサーバー。 2003年初版リリース。 ちょっとずつシェアが増えていて2022å¹´8月時点で12.3%。 Nginx: 33.8%, Apache: 31.3%, Cloudflare Server 21.7% 参考:  Historical trends in the usage statistics of web servers, August 2022 独自にビルドしたPHPとキャッシュ用WordPressプラグインも配布していて、Nginxより高速に動作するらしい。 HTTP/3にいち早く対応。 設定ファイルの記述はApacheと同じ。 OpenLiteSpeed LiteSpeed Web Server - Wikipedia 開発しているのはLiteSpeedというアメリカの会社。 George Wangという方がSEO。 About Us - LiteSpeed Technologies 中国との関係を心配してしまう…。 2. Nginxとは? オープンソースな軽量Webサーバー。 ロシア人の開発者により2004年に初版公開。 2019å¹´3月にアメリカのF5ネットワークスに買収された。 nginx - Wikipedia Leadership | Company Information | F5 F5, Inc. - Wikipedia 2021年にApacheを抜いてWebサーバーのシェア1位に。 2022å¹´1月にはオリジナル開発者がF5とNginxが離れることが発表された。 F5、NGINXの開発チームをロシア国外へ移転させたことを報告。開発を立て直しリリースサイクルも元通りに - Publickey NGINX開発者のIgor Sysoev氏が引退を発表。F5とNGINXから退任 - Publickey これからの開発が心配…。 3. NGINX Unitとは? php-fpmと同じアプリ...

Office365スパム対策に引っ掛かってメールサーバーがブラックリストに登録されていることが判明

サーバーからメール送信するときに拒否されたので、スパム判定されているか確認したときの覚書。 環境: CentOS Stream 8, Postfix 3.5.8 1.サーバーからメール送信時にエラー サーバーからメール送信しようとしたら下記エラー。 Aug  9 07:50:23 server03 postfix/smtp[246790]: 477E6D96A3: to=<>, relay=hoge.mail.protection.outlook.com[]:25, delay=0.72, delays=0.06/0.02/0.6/0.04, dsn=5.7.606, status=bounced (host hoge.mail.protection.outlook.com[] said: 550 5.7.606 Access denied, banned sending IP []. To request removal from this list please visit https://sender.office.com/ and follow the directions. For more information please go to  http://go.microsoft.com/fwlink/?LinkID=526655 AS(1430) (in reply to RCPT TO command)) Office 365 スパム対策 IP 除外ポータルから申請してブラックリストから除外できる。 Delist IP - Delist IP ブロックされた送信者の一覧から自分を削除し、アドレス 5.7.511 アクセス拒否エラー - Office 365 | Microsoft Docs 電子メール配信率の最大化 (Dynamics 365 Marketing) | Microsoft Docs 除外申請したら下記エラー。 リクエストの処理中にエラーが発生しました。こちらにあるメールの配信率に関するベスト プラクティスに従っていることをご確認いただき、リストからの除外をリクエストする IP アドレスを [email protected] にお送りください。 送信しようとしたサーバーはSPFとD...

Google Workspaceで宛先不明のメールを転送受信

Google Workspaceでいないユーザー宛てにメールが来たとしてもメール転送する設定をしたときの覚書。 サーバー側でrootやnginx宛てに送ろうとするときがある。 今まではユーザーのメールエイリアス設定で受け取っていた。 昔Google Apps時代はメールエイリアス設定で正規表現を記述できたけど今は出来ない。 公式ヘルプを参考にする。 Google Workspace でのメールのルーティングと配信のオプション - Google Workspace 管理者 ヘルプ 公式ヘルプでは「キャッチオール」という言い方をしている。 Google Workspaceの管理画面にログイン アプリ → Google Workspace → Gmail → ルーティング → 設定 ルーティング名: 宛先不明を転送 1.影響を受けるメール: 受信 2.上記の種類のメッセージに対し、次の処理を行う   件名の先頭に追加するカスタム テキスト: 宛先不明   エンベロープ受信者を変更する: (受信するユーザーの@の前部分) オプション   B. 影響を受けるアカウントの種類     認識できない、キャッチオール これで保存。 @の前を適当な値にしてメール送信テストする。

Microsoft Graph API + PostmanでOneDriveにファイルアップロード

サーバーのバックグラウンド処理(PHP)でOneDriveの機能を利用する方法を調査しているときの覚書。 環境: CentOS Stream 8, PHP 7.4.19 Microsoft Graph API公式ドキュメント ユーザーなしでアクセスを取得 - Microsoft Graph | Microsoft Docs サーバーなどバックグラウンドでMicrosoft Graph APIにアクセスするのを「アプリケーション(Application)」と呼んでいる。 ユーザーの許可を得るアクセスは「委任(Delegated)」。 最初はよく分からなくてもPostmanで動作確認するあたりでだんだんと分かってくる。 1.アプリ登録とアクセス許可 まずは上記公式ドキュメントに従ってやってみる。 アプリ登録 「証明書とシークレット」からクライアントシークレットを作成 説明は作成日(20220804)を設定することにした 値をコピーしておく 「APIのアクセス許可」からアクセス許可の追加。 Files.ReadWrite.All|アプリケーションを追加 「既定のディレクトリに管理者の同意を与えます」をクリック ちなみに無期限のクライアントシークレットは作成不可になったらしい。 クライアントシークレットを定期更新する処理を作るか、手動による更新が必要。 クライアント シークレット作成画面の変更について | Japan Azure Identity Support Blog 2.Postmanで動作確認 10年前によく使っていたAPIテストツール「Postman」がクラウドベースで超進化していた。 Microsoft Graph API で Postman を使用する - Microsoft Graph | Microsoft Docs Microsoft Graph | Postman API Network 上記ドキュメントからリンクされている説明動画を見ればだいたい分かる。 Googleアカウントでサインアップした。 動画と同じことをやってみる。 Postmanの画面が少し違っていた。 動画見て分かった気にならないのが大事。 3.OneDriveの情報取得 Postman上で特定ユーザーのOneDrive情報を取得するリクエストを送信してみる。 UserIdはGet U...

Microsoft Azureポータルに登録してチュートリアルをやる

Microsoft Graph APIを試すために新規Microsoftアカウントを作成してAzureポータルへログインしたときの覚書。 環境: CentOS Stream 8, PHP 7.4.19 1. Azureポータルにログイン(Microsoftアカウント作成) Microsoft 365のビジネスアカウントはもってないので、下記から会社メールアドレスでMicrosoftアカウント登録から行った。 Azure の無料アカウントを今すぐ作成 | Microsoft Azure アカウント作成後Azureポータルへ移動。 登録直後のOneDriveの容量は5GB。 2. PHPのチュートリアルをやる ※ 追記。これをやるよりPostmanのデモをやった方が圧倒的に分かりやすい。 Microsoft Graph API で Postman を使用する - Microsoft Graph | Microsoft Docs Microsoft公式のPHPチュートリアルをやってみる。 Microsoft Graph チュートリアル - Microsoft Graph | Microsoft Docs msgraph-training-php/demo at main · microsoftgraph/msgraph-training-php · GitHub GitHubのREADMEの方が分かりやすかった。 書いてある通り設定してサンプルを実行してみた。メニューが出てきたら1を入力。 $ php main.php Error getting user: Client error: `POST https://login.microsoftonline.com/common/oauth2/v2.0/devicecode` resulted in a `400 Bad Request` response: {"error":"invalid_request","error_description":"AADSTS50059: No tenant-identifying information found in either the reque (truncated...) Azure AD 認証と承認...

PhpSpreadsheetをインストールしてXLSX→PDF変換を試す

PHPを使ってExcelからPDF変換のベストプラクティスを探しているときの覚書。 環境: CentOS Stream 8, PHP 7.4.19 PHPでエクセルを編集するのはPhpSpreadsheetが最強。 PhpSpreadsheet/samples at master · PHPOffice/PhpSpreadsheet · GitHub Welcome to PhpSpreadsheet's documentation - PhpSpreadsheet Documentation サンプルコードはGitHub上のsampleディレクトリにある。 ・・・けど、ドキュメントで十分だった。 composerを使ってインストールする。 $ composer require phpoffice/phpspreadsheet 例えばエクセルを読み込んで特定のセルに値を入れて保存する処理はこちら。 require 'vendor/autoload.php'; use PhpOffice\PhpSpreadsheet\Writer\Xlsx; $spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load('input.xlsx'); $sheet = $spreadsheet->getActiveSheet(); $sheet->setCellValue('I3', 'テスト'); $writer = new Xlsx($spreadsheet); $writer->save('output.xlsx'); 元よりファイルサイズが小さくなっているのが気になるけど問題なく出力できた。 TCPDFを使う場合はcomposerでインストールするだけでOK。 $ composer search tcpdf $ composer require tecnickcom/tcpdf PDF変換をするサンプルコードはこちら。 require 'vendor/autoload.php'; use PhpOffice\PhpSpreadsheet\Writer\Xlsx; $spreadsheet = \PhpOff...

PHP composerをCentOS8にインストール

久しぶりにcomposerを使おうと思ったらdnfのリポジトリになかったので、公式サイトからインストールしたときの覚書。 環境: CentOS Stream 8, PHP 7.4.19 公式サイト通りにコマンドを打つ。 Download | Composer php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" php -r "if (hash_file('sha384', 'composer-setup.php') === '55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" php composer-setup.php php -r "unlink('composer-setup.php');" composer.pharが出来ているので確認する。 # ./composer.phar --version Composer version 2.3.10 2022-07-13 15:48:23 別のユーザーが使えるようにPATHが通ったディレクトリに移動 # mv composer.phar /usr/local/bin/composer composer自体をアップデートするとき # composer self-update PhpSpreadsheetインストールしてみる # composer require phpoffice/phpspreadsheet Windowsにインストールする場合はScoopを使う(インストールはしていない)。 > scoop search composer 【関連記事】...

PHP でExcel(xlsx)をPDF変換する方法5選

ウェブフォームの内容をエクセルに書き込んでPDF出力する方法を調査したときの覚書。 環境: CentOS Stream 8, PHP 7.4.19 1.PhpSpreadsheet PHPでエクセルを編集できるライブラリ。 開発が活発なので安心感がある。 PDFに出力するときはTCPDFなどの外部ライブラリを使う。 GitHub - PHPOffice/PhpSpreadsheet: A pure PHP library for reading and writing spreadsheet files Welcome to PhpSpreadsheet's documentation - PhpSpreadsheet Documentation Reading and writing to file - PhpSpreadsheet Documentation これで問題なく変換できるのであれば一番いいと思う。 試す予定。 2. PhpSpreadsheet + LibreOffice PhpSpreadsheetでエクセルを編集してLibreOfficeでPDF変換する方法。 LibreOfficeはオープンソースのオフィスソフト。 OpenOfficeの後継ソフト。 ホーム | LibreOffice - オフィススイートのルネサンス LibreOffice - Wikipedia LinuxサーバーにインストールしてLibreOfficeのコマンドで変換する。 14年前にOpenOfficeで試したときは変換に時間掛かるし、環境整えるのが大変だったので優先順位は低い。 参考:  【Linux】OpenOffice.orgとJODConverterでExcelをPDF変換(設定編) 今なら下記のような外部APIが充実しているので、わざわざこの方法を選択する理由はない。 3. Google Drive API GoogleドライブのAPIを利用してPDF形式でダウンロードする方法。 無料で利用できるが、100秒間に20,000回の制限がある。 (まず制限に引っかかることはなさそう) Drive API  |  Google Developers Usage limits  |  Drive API  |...

Lets Note S9にGoogle ChromeOS Flexをインストール

ChromeOS Flexが気になったので古いノートPCにインストールしてみたときの覚書。 環境: Let's note CF-S9L(CF-S9LY9BDP), Intel Core i7 M640 2.8Ghz, メモリ8GB Let's note CF-S9Lは2010å¹´9月発売。 参考: パナソニック公式サイト|スペック対比表 1.ChromeOS Flexとは ChromeOSから派生した古いPCとMacにインストールすることを目的にしたディストリビューション。 ChromeOSはGoogleが主導で開発しているLinuxをベースのOS。 オープンソースのChromium OSから派生しGoogle Chromeを主要なインタフェースにしていることが特徴。 ChromeOS Flexは当初CloudReadyという名前で開発されたのを2020年にGoogleが買収。 2022å¹´2月に開発版を発表。 2022å¹´7月に正式版をリリース。 個人用途は無料。 企業向けにデバイス管理などを展開する予定。 参考 Google ChromeOS - Wikipedia ChromeOS - Wikipedia PC 版または Mac 版 ChromeOS Flex を入手 - Chrome Enterprise 2.インストール手順 公式サイトを参考に。 1: USB インストーラを作成する - Chrome OS Flex ヘルプ 手順の概要 Chrome拡張機能をインストールして、ChromeOS Flex用USBインストールメディアを作成。 8GB以上のUSBメモリが必要。 USB3のメモリで12分ほどで作成完了。 ノートPCのBIOS(起動時にF2を押す)から起動オプション優先度の「USBハードディスク」をハードディスクより上にする。 USBインストールメディアをノートPCに挿して起動。 言語はデフォルトのEnglish(United States)を選択。 14:25開始 → 14:29終了(4分ほどで終了)。 USBを抜いて起動。 言語とキーボードを日本語にした。 Wi-Fiは見えるけど使えなかった(ハードの問題だと思う)のでLANを接続。 Googleアカウントでログイン 事後処理 USBメモリをPCに挿して、Chromebookリカバリユ...