投稿

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 アドレスを delist@messaging.microsoft.com にお送りください。 送信しようとしたサーバーはSPFとDKIMを設定済み。

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