このセクションでは、このライブラリでサポートされるすべてのサービスを示します。サポートされているモジュールの詳細については、ここの wiki を確認してください。
以下の表は、このツールがサポートするサービスと、このツールを利用するために使用する必要があるサービス URL の例を示しています。以下にリストされているサービスのいずれかをクリックすると、それらのサービスにアクセスするための Apprise の設定方法の詳細が表示されます。
通知サービス | サービスID | デフォルトのポート | 構文例 |
---|---|---|---|
アプリズAPI | apprise:// または apprise:// | (TCP) 80 または 443 | apprise://ホスト名/トークン |
AWS SES | ses:// | (TCP) 443 | ses://user@domain/AccessKeyID/AccessSecretKey/RegionName ses://user@domain/AccessKeyID/AccessSecretKey/地域名/email1/email2/emailN |
吠える | 吠える:// | (TCP) 80 または 443 | bark://ホスト名 bark://ホスト名/device_key bark://ホスト名/device_key1/device_key2/device_keyN barks://ホスト名 barks://ホスト名/device_key barks://ホスト名/device_key1/device_key2/device_keyN |
チャンティファイ | chantify:// | (TCP) 443 | chantify://トークン |
不和 | 不和:// | (TCP) 443 | discord://webhook_id/webhook_token discord://avatar@webhook_id/webhook_token |
エンビー | emby:// または embys:// | (TCP) 8096 | emby://ユーザー@ホスト名/ emby://ユーザー:パスワード@ホスト名 |
エニグマ2 | enigma2:// または enigma2s:// | (TCP) 80 または 443 | enigma2://ホスト名 |
FCM | fcm:// | (TCP) 443 | fcm://プロジェクト@apikey/DEVICE_ID fcm://project@apikey/#TOPIC fcm://project@apikey/DEVICE_ID1/#topic1/#topic2/DEVICE_ID2/ |
フェイシュ | フェイシュ:// | (TCP) 443 | フェイシュ://トークン |
群れ | 群れ:// | (TCP) 443 | flock://トークン flock://ボット名@トークン flock://app_token/u:userid flock://app_token/g:channel_id flock://app_token/u:userid/g:channel_id |
Googleチャット | gチャット:// | (TCP) 443 | gchat://ワークスペース/キー/トークン |
ゴティファイ | gotify:// または gotifys:// | (TCP) 80 または 443 | gotify://ホスト名/トークン gotifys://hostname/token?priority=high |
唸る | うなり声:// | (UDP) 23053 | うなり声://ホスト名 グロウル://ホスト名:ポート番号 グロウル://パスワード@ホスト名 Growl://パスワード@ホスト名:ポート 注: get パラメータバージョンを使用すると、growl リクエストが古い v1.x プロトコルを使用して動作できるようにすることもできます。例は次のようになります:growl://hostname?version=1 |
ギルド付き | ギルド:// | (TCP) 443 | ギルド://webhook_id/webhook_token guilded://avatar@webhook_id/webhook_token |
ホームアシスタント | hassio:// または hassios:// | (TCP) 8123 または 443 | hassio://ホスト名/アクセストークン hassio://ユーザー@ホスト名/アクセストークン hassio://ユーザー:パスワード@ホスト名:ポート/アクセストークン hassio://ホスト名/オプション/パス/アクセストークン |
イフト | ifttt:// | (TCP) 443 | ifttt://webhooksID/イベント ifttt://webhooksID/イベント1/イベント2/イベントN ifttt://webhooksID/Event1/?+Key=Value ifttt://webhooksID/Event1/?-Key=value1 |
参加する | 参加する:// | (TCP) 443 | join://apikey/device join://apikey/device1/device2/deviceN/ 参加:://apikey/グループ 参加:://apikey/groupA/groupB/groupN join://apikey/DeviceA/groupA/groupN/DeviceN/ |
コディ | kodi:// または kodis:// | (TCP) 8080 または 443 | kodi://ホスト名 kodi://ユーザー@ホスト名 kodi://ユーザー:パスワード@ホスト名:ポート |
クムロス | クムロス:// | (TCP) 443 | クムロス://apikey/serverkey |
ラメトリック時間 | ラメトリック:// | (TCP) 443 | lametric://apikey@device_ipaddr lametric://apikey@ホスト名:ポート lametric://client_id@client_secret |
ライン | ライン:// | (TCP) 443 | line://トークン@ユーザー line://トークン/ユーザー1/ユーザー2/ユーザーN |
ルナシー | ルナシー:// | (TCP) 80 または 443 | lunasea://user:pass@+FireBaseDevice/ lunasea://user:pass@FireBaseUser/ lunasea://user:pass@hostname/+FireBaseDevice/ lunasea://user:pass@hostname/@FireBaseUser/ |
メールガン | メールガン:// | (TCP) 443 | mailgun://ユーザー@ホスト名/apikey mailgun://ユーザー@ホスト名/apikey/email mailgun://ユーザー@ホスト名/apikey/email1/email2/emailN mailgun://user@hostname/apikey/?name="From%20User" |
マストドン | マストドン:// または マストドン:// | (TCP) 80 または 443 | マストドン://access_key@ホスト名 マストドン://access_key@ホスト名/@user マストドン://access_key@ホスト名/@user1/@user2/@userN |
マトリックス | マトリックス://またはマトリックス:// | (TCP) 80 または 443 | マトリックス://ホスト名 マトリックス://ユーザー@ホスト名 マトリックス://ユーザー:パス@ホスト名:ポート/#room_alias マトリックス://ユーザー:パス@ホスト名:ポート/!room_id マトリックス://user:pass@hostname:port/#room_alias/!room_id/#room2 マトリックス://トークン@ホスト名:ポート/?webhook=matrix マトリックス://ユーザー:トークン@ホスト名/?webhook=slack&format=markdown |
最重要 | mmmost:// または mmmosts:// | (TCP) 8065 | mmmost://ホスト名/認証キー mmmost://ホスト名:80/authkey mmmost://ユーザー@ホスト名:80/authkey mmmost://ホスト名/authkey?channel=channel mmOSTs://ホスト名/authkey mmOSTs://ユーザー@ホスト名/authkey |
Microsoft Power Automate / ワークフロー (MSTeam) | ワークフロー:// | (TCP) 443 | ワークフロー://ワークフローID/署名/ |
マイクロソフトチーム | msteams:// | (TCP) 443 | msteams://トークンA/トークンB/トークンC/ |
ミスキー | misskey:// または misskeys:// | (TCP) 80 または 443 | misskey://access_token@ホスト名 |
MQTT | mqtt:// または mqtts:// | (TCP) 1883 または 8883 | mqtt://ホスト名/トピック mqtt://ユーザー@ホスト名/トピック mqtts://ユーザー:パス@ホスト名:9883/トピック |
ネクストクラウド | ncloud:// または nclouds:// | (TCP) 80 または 443 | ncloud://adminuser:pass@host/User nclouds://adminuser:pass@host/User1/User2/UserN |
次のクラウドトーク | nctalk:// または nctalks:// | (TCP) 80 または 443 | nctalk://user:pass@host/RoomId nctalks://user:pass@host/RoomId1/RoomId2/RoomIdN |
ノティカ | 通知:// | (TCP) 443 | notica://トークン/ |
通知 | 通知する:// | (TCP) 443 | notifiarr://apikey/#channel notifiarr://apikey/#channel1/#channel2/#channeln |
通知 | 通知:// | (TCP) 443 | notifico://プロジェクトID/MessageHook/ |
ntfy | ntfy:// | (TCP) 80 または 443 | ntfy://トピック/ ntfys://トピック/ |
オフィス365 | o365:// | (TCP) 443 | o365://テナントID:アカウントメール/クライアントID/クライアントシークレット o365://テナントID:アカウントメール/クライアントID/クライアントシークレット/ターゲットメール o365://テナントID:アカウントメール/クライアントID/クライアントシークレット/ターゲットメール1/ターゲットメール2/ターゲットメールN |
ワンシグナル | onesignal:// | (TCP) 443 | onesignal://AppID@APIKey/PlayerID onesignal://TemplateID:AppID@APIKey/ユーザーID onesignal://AppID@APIKey/#IncludeSegment onesignal://AppID@APIKey/メール |
オプスジェニー | opsgenie:// | (TCP) 443 | opsgenie://APIKey opsgenie://APIKey/ユーザーID opsgenie://APIKey/#Team opsgenie://APIKey/*スケジュール opsgenie://APIKey/^エスカレーション |
ポケベルデューティ | ポケベルデューティ:// | (TCP) 443 | pagerduty://IntegrationKey@ApiKey pagerduty://IntegrationKey@ApiKey/Source/Component |
ポケベルツリー | ポケベルツリー:// | (TCP) 443 | pagertree://integration_id |
解析プラットフォーム | parsep:// または parseps:// | (TCP) 80 または 443 | parsep://AppID:MasterKey@ホスト名 parseps://AppID:MasterKey@ホスト名 |
ポップコーン通知する | ポップコーン:// | (TCP) 443 | ポップコーン://ApiKey/ToPhoneNo ポップコーン://ApiKey/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ ポップコーン://ApiKey/ToEmail ポップコーン://ApiKey/ToEmail1/ToEmail2/ToEmailN/ ポップコーン://ApiKey/ToPhoneNo1/ToEmail1/ToPhoneNoN/ToEmailN |
徘徊 | 徘徊:// | (TCP) 443 | 徘徊:アピキー prowl://apikey/providerkey |
プッシュバレット | pbul:// | (TCP) 443 | pbul://アクセストークン pbul://accesstoken/#channel pbul://accesstoken/A_DEVICE_ID pbul://accesstoken/[email protected] pbul://accesstoken/#channel/#channel2/[email protected]/DEVICE |
プッシュジェット | pjet:// または pjets:// | (TCP) 80 または 443 | pjet://ホスト名/秘密 pjet://ホスト名:ポート/シークレット pjets://secret@ホスト名/secret pjets://ホスト名:ポート/シークレット |
プッシュ(テクラス) | 押す:// | (TCP) 443 | プッシュ://apikey/ |
プッシュされました | プッシュ:// | (TCP) 443 | Pushed://appkey/appsecret/ Pushed://appkey/appsecret/#ChannelAlias Pushed://appkey/appsecret/#ChannelAlias1/#ChannelAlias2/#ChannelAliasN Pushed://appkey/appsecret/@UserPushedID Pushed://appkey/appsecret/@UserPushedID1/@UserPushedID2/@UserPushedIDN |
プッシュミー | プッシュミー:// | (TCP) 443 | Pushme://トークン/ |
プッシュオーバー | 貧しい:// | (TCP) 443 | pover://user@token pover://user@token/DEVICE pover://user@token/DEVICE1/DEVICE2/DEVICEN 注: user_id とトークンの両方を指定する必要があります |
プッシュセーファー | psafer:// または psafers:// | (TCP) 80 または 443 | psafer://秘密鍵 psafers://privatekey/DEVICE psafer://privatekey/DEVICE1/DEVICE2/DEVICEN |
強引 | 強引:// | (TCP) 443 | Pushy://apikey/DEVICE Pushy://apikey/DEVICE1/DEVICE2/DEVICEN Pushy://apikey/TOPIC Pushy://apikey/TOPIC1/TOPIC2/TOPICN |
プッシュディア | Pushdeer:// または Pushdeers:// | (TCP) 80 または 443 | プッシュディア://pushKey Pushdeer://ホスト名/pushKey Pushdeer://ホスト名:ポート/pushKey |
レディット | レディット:// | (TCP) 443 | reddit://user:password@app_id/app_secret/subreddit reddit://user:password@app_id/app_secret/sub1/sub2/subN |
反乱 | 反乱:// | (TCP) 443 | revolt://bottoken/チャンネルID revolt://bottoken/ChannelID1/ChannelID2/ChannelIDN |
ロケットチャット | rocket:// または rockets:// | (TCP) 80 または 443 | rocket://ユーザー:パスワード@ホスト名/ルームID/チャネル rockets://ユーザー:パスワード@ホスト名:443/#Channel1/#Channel1/RoomID rocket://ユーザー:パスワード@ホスト名/#チャンネル rocket://webhook@ホスト名 rockets://webhook@ホスト名/@User/#Channel |
RSyslog | rsyslog:// | (UDP) 514 | rsyslog://ホスト名 rsyslog://ホスト名/施設 |
リバー | リバー:// | (TCP) 443 | ryver://組織/トークン ryver://botname@Organization/Token |
送信グリッド | センドグリッド:// | (TCP) 443 | sendgrid://APIToken:FromEmail/ sendgrid://APIToken:FromEmail/ToEmail sendgrid://APIToken:FromEmail/ToEmail1/ToEmail2/ToEmailN/ |
サーバーちゃん | しゃん:// | (TCP) 443 | schan://sendkey/ |
シグナルAPI | signal:// または signal:// | (TCP) 80 または 443 | signal://ホスト名:ポート/FromPhoneNo signal://ホスト名:ポート/FromPhoneNo/ToPhoneNo signal://ホスト名:ポート/FromPhoneNo/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
シンプルプッシュ | スプッシュ:// | (TCP) 443 | spush://apikey spush://salt:password@apikey spush://apikey?event=アプリズ |
スラック | スラック:// | (TCP) 443 | lack://トークンA/トークンB/トークンC/ lack://トークンA/トークンB/トークンC/チャネル lack://botname@TokenA/TokenB/TokenC/Channel lack://user@TokenA/TokenB/TokenC/Channel1/Channel2/ChannelN |
SMTP2Go | smtp2go:// | (TCP) 443 | smtp2go://ユーザー@ホスト名/apikey smtp2go://ユーザー@ホスト名/apikey/email smtp2go://ユーザー@ホスト名/apikey/email1/email2/emailN smtp2go://user@hostname/apikey/?name="From%20User" |
スパークポスト | スパークポスト:// | (TCP) 443 | スパークポスト://ユーザー@ホスト名/apikey スパークポスト://ユーザー@ホスト名/apikey/email スパークポスト://ユーザー@ホスト名/apikey/email1/email2/emailN smilepost://user@hostname/apikey/?name="From%20User" |
スプランク | splunk:// または victorops:/ | (TCP) 443 | splunk://route_key@apikey splunk://route_key@apikey/entity_id |
ストリームラボ | strmlabs:// | (TCP) 443 | strmlabs://AccessToken/ strmlabs://AccessToken/?name=name&identifier=identifier&amount=0¤cy=USD |
Synology チャット | Synology:// または Synologys:// | (TCP) 80 または 443 | synology://ホスト名/トークン synology://ホスト名:ポート/トークン |
シスログ | syslog:// | 該当なし | syslog:// syslog://ファシリティ |
電報 | tgram:// | (TCP) 443 | tgram://bottoken/ChatID tgram://bottoken/ChatID1/ChatID2/ChatIDN |
ツイッター | ツイッター:// | (TCP) 443 | twitter://CKey/CSecret/AKey/ASecret twitter://user@CKey/CSecret/AKey/ASecret twitter://CKey/CSecret/AKey/ASecret/User1/User2/User2 twitter://CKey/CSecret/AKey/ASecret?mode=tweet |
ねじれ | ねじれ:// | (TCP) 443 | ツイスト://パスワード:ログイン ツイスト://パスワード:ログイン/#チャンネル ツイスト://パスワード:ログイン/#チーム:チャンネル ツイスト://パスワード:ログイン/#チーム:チャンネル1/チャンネル2/#チーム3:チャンネル |
Webex Teams (シスコ) | wxteams:// | (TCP) 443 | wxteams://トークン |
WeCom ボット | wecombot:// | (TCP) 443 | wecombot://BotKey |
ワッツアップ | Whatsapp:// | (TCP) 443 | whatsapp://AccessToken@FromPhoneID/ToPhoneNo whatsapp://Template:AccessToken@FromPhoneID/ToPhoneNo |
Wxプッシャー | wxpusher:// | (TCP) 443 | wxpusher://AppToken@UserID1/UserID2/UserIDN wxpusher://AppToken@Topic1/Topic2/Topic3 wxpusher://AppToken@UserID1/Topic1/ |
XBMC | xbmc:// または xbmcs:// | (TCP) 8080 または 443 | xbmc://ホスト名 xbmc://ユーザー@ホスト名 xbmc://ユーザー:パスワード@ホスト名:ポート |
チューリップチャット | ズリップ:// | (TCP) 443 | zulip://botname@Organization/Token zulip://ボット名@Organization/Token/Stream zulip://ボット名@組織/トークン/メール |
通知サービス | サービスID | デフォルトのポート | 構文例 |
---|---|---|---|
話すアフリカ人 | atalk:// | (TCP) 443 | atalk://AppUser@ApiKey/ToPhoneNo atalk://AppUser@ApiKey/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
自動パケット報告システム (ARPS) | 4月:// | (TCP) 10152 | aprs://user:pass@callsign aprs://user:pass@callsign1/callsign2/callsignN |
AWSのSNS | sns:// | (TCP) 443 | sns://AccessKeyID/AccessSecretKey/地域名/+電話番号 sns://AccessKeyID/AccessSecretKey/地域名/+PhoneNo1/+PhoneNo2/+PhoneNoN sns://AccessKeyID/AccessSecretKey/リージョン名/トピック sns://AccessKeyID/AccessSecretKey/リージョン名/Topic1/Topic2/TopicN |
バルクSMS | バルクSMS:// | (TCP) 443 | Bulksms://ユーザー:パスワード@ToPhoneNo Bulksms://ユーザー:パスワード@ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
バルクVS | バルクvs:// | (TCP) 443 | Bulkvs://user:password@FromPhoneNo Bulkvs://user:password@FromPhoneNo/ToPhoneNo Bulkvs://user:password@FromPhoneNo/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
バーストSMS | バーストSMS:// | (TCP) 443 | burstsms://ApiKey:ApiSecret@FromPhoneNo/ToPhoneNo burstsms://ApiKey:ApiSecret@FromPhoneNo/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
「送信」をクリックします | クリック送信:// | (TCP) 443 | clicksend://user:pass@PhoneNo clicksend://user:pass@ToPhoneNo1/ToPhoneNo2/ToPhoneNoN |
DAPNET | dapnet:// | (TCP) 80 | dapnet://user:pass@callsign dapnet://user:pass@callsign1/callsign2/callsignN |
D7ネットワークス | d7sms:// | (TCP) 443 | d7sms://token@PhoneNo d7sms://token@ToPhoneNo1/ToPhoneNo2/ToPhoneNoN |
ディントーク | ディントーク:// | (TCP) 443 | dingtalk://token/ dingtalk://token/ToPhoneNo dingtalk://token/ToPhoneNo1/ToPhoneNo2/ToPhoneNo1/ |
フリーモバイル | freemobile:// | (TCP) 443 | freemobile://user@password/ |
httpSMS | httpsms:// | (TCP) 443 | httpsms://ApiKey@FromPhoneNo httpsms://ApiKey@FromPhoneNo/ToPhoneNo httpsms://ApiKey@FromPhoneNo/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
カベネガー | カベネガー:// | (TCP) 443 | kavenegar://ApiKey/ToPhoneNo kavenegar://FromPhoneNo@ApiKey/ToPhoneNo kavenegar://ApiKey/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN |
メッセージ鳥 | msgbird:// | (TCP) 443 | msgbird://ApiKey/FromPhoneNo msgbird://ApiKey/FromPhoneNo/ToPhoneNo msgbird://ApiKey/FromPhoneNo/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
MSG91 | msg91:// | (TCP) 443 | msg91://TemplateID@AuthKey/ToPhoneNo msg91://TemplateID@AuthKey/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
プリヴォ | プリボ:// | (TCP) 443 | plivo://AuthID@Token@FromPhoneNo plivo://AuthID@Token/FromPhoneNo/ToPhoneNo plivo://AuthID@Token/FromPhoneNo/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
セブン | セブン:// | (TCP) 443 | 7://ApiKey/FromPhoneNo 7://ApiKey/FromPhoneNo/ToPhoneNo 7://ApiKey/FromPhoneNo/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
ソシエテ・フランセーズ・デュ・ラジオテレフォン (SFR) | sfr:// | (TCP) 443 | sfr://ユーザー:パスワード>@spaceId/ToPhoneNo sfr://ユーザー:パスワード>@spaceId/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
シグナルAPI | signal:// または signal:// | (TCP) 80 または 443 | signal://ホスト名:ポート/FromPhoneNo signal://ホスト名:ポート/FromPhoneNo/ToPhoneNo signal://ホスト名:ポート/FromPhoneNo/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
シンチ | シンチ:// | (TCP) 443 | sinch://ServicePlanId:ApiToken@FromPhoneNo sinch://ServicePlanId:ApiToken@FromPhoneNo/ToPhoneNo sinch://ServicePlanId:ApiToken@FromPhoneNo/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ sinch://ServicePlanId:ApiToken@ShortCode/ToPhoneNo sinch://ServicePlanId:ApiToken@ShortCode/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
SMSEagle | smseagle:// または smseagles:// | (TCP) 80 または 443 | smseagles://ホスト名:ポート/ToPhoneNo smseagles://ホスト名:ポート/@ToContact smseagles://ホスト名:ポート/#ToGroup smseagles://ホスト名:ポート/ToPhoneNo1/#ToGroup/@ToContact/ |
SMSマネージャー | smsmgr:// | (TCP) 443 | smsmgr://ApiKey@ToPhoneNo smsmgr://ApiKey@ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
スリーマ ゲートウェイ | スリーマ:// | (TCP) 443 | threema://GatewayID@secret/ToPhoneNo threema://GatewayID@secret/ToEmail threema://ゲートウェイID@secret/ToThreemaID/ threema://GatewayID@secret/ToEmail/ToThreemaID/ToPhoneNo/... |
トゥイリオ | ツイリオ:// | (TCP) 443 | twilio://AccountSid:AuthToken@FromPhoneNo twilio://AccountSid:AuthToken@FromPhoneNo/ToPhoneNo twilio://AccountSid:AuthToken@FromPhoneNo/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ twilio://AccountSid:AuthToken@FromPhoneNo/ToPhoneNo?apikey=Key twilio://AccountSid:AuthToken@ShortCode/ToPhoneNo twilio://AccountSid:AuthToken@ShortCode/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
ボイプムス | voipms:// | (TCP) 443 | voipms://パスワード:電子メール/FromPhoneNo voipms://パスワード:電子メール/FromPhoneNo/ToPhoneNo voipms://パスワード:email/FromPhoneNo/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
Vonage (旧 Nexmo) | nexmo:// | (TCP) 443 | nexmo://ApiKey:ApiSecret@FromPhoneNo nexmo://ApiKey:ApiSecret@FromPhoneNo/ToPhoneNo nexmo://ApiKey:ApiSecret@FromPhoneNo/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ |
通知サービス | サービスID | デフォルトのポート | 構文例 |
---|---|---|---|
Linux DBus 通知 | dbus:// qt:// glib:// kde:// | 該当なし | dbus:// qt:// glib:// kde:// |
Linux Gnome 通知 | ノーム:// | 該当なし | ノーム:// |
MacOS X の通知 | macosx:// | 該当なし | macosx:// |
Windows通知 | ウィンドウズ:// | 該当なし | ウィンドウズ:// |
サービスID | デフォルトのポート | 構文例 |
---|---|---|
mailto:// | (TCP) 25 | mailto://userid:[email protected] mailto://domain.com?user=userid&pass=password mailto://domain.com:2525?user=userid&pass=password mailto://[email protected]&pass=パスワード mailto://mySendingUsername:[email protected][email protected] mailto://userid:[email protected]?smtp=mail.example.com&[email protected]&name=no%20reply |
mailtos:// | (TCP) 587 | mailtos://userid:[email protected] mailtos://domain.com?user=userid&pass=password mailtos://domain.com:465?user=userid&pass=password mailtos://[email protected]&pass=password mailtos://mySendingUsername:[email protected][email protected] mailtos://userid:[email protected]?smtp=mail.example.com&[email protected]&name=no%20reply |
Apprise には、mailto:// サービスを大幅に簡素化するいくつかの電子メール サービス (yahoo、fastmail、hotmail、gmail など) が組み込まれています。詳細については、こちらをご覧ください。
ポストメソッド | サービスID | デフォルトのポート | 構文例 |
---|---|---|---|
形状 | form:// または Forms:// | (TCP) 80 または 443 | フォーム://ホスト名 form://ユーザー@ホスト名 フォーム://ユーザー:パスワード@ホスト名:ポート form://ホスト名/a/path/to/post/to |
JSON | json:// または jsons:// | (TCP) 80 または 443 | json://ホスト名 json://ユーザー@ホスト名 json://ユーザー:パスワード@ホスト名:ポート json://ホスト名/a/path/to/post/to |
XML | xml:// または xmls:// | (TCP) 80 または 443 | xml://ホスト名 xml://ユーザー@ホスト名 xml://ユーザー:パスワード@ホスト名:ポート xml://ホスト名/a/path/to/post/to |
最も簡単な方法は、このパッケージを pypi からインストールすることです。
pip install apprise
Apprise は RPM としてもパッケージ化されており、CentOS、Redhat、Rocky、Oracle Linux などをサポートする EPEL を通じて利用できます。
# Follow instructions on https://docs.fedoraproject.org/en-US/epel
# to get your system connected up to EPEL and then:
# Redhat/CentOS 7.x users
yum install apprise
# Redhat/CentOS 8.x+ and/or Fedora Users
dnf install apprise
Apprise のグラフィカル バージョンをチェックアウトして、管理可能な Web ページを通じて構成と通知を一元管理することもできます。
このパッケージには、 appriseという小さなコマンド ライン インターフェイス (CLI) ツールも提供されています。通知したいサーバーの URL がわかっている場合は、コマンド ラインでそれらをすべて指定し、次の方法で通知を送信することができます。
# Send a notification to as many servers as you want
# as you can easily chain one after another (the -vv provides some
# additional verbosity to help let you know what is going on):
apprise -vv -t ' my title ' -b ' my notification body '
' mailto://myemail:[email protected] '
' pbul://o.gn5kj6nfhv736I7jC3cj3QLRiyhgl98b '
# If you don't specify a --body (-b) then stdin is used allowing
# you to use the tool as part of your every day administration:
cat /proc/cpuinfo | apprise -vv -t ' cpu info '
' mailto://myemail:[email protected] '
# The title field is totally optional
uptime | apprise -vv
' discord:///4174216298/JHMHI8qBe7bk2ZwO5U711o3dV_js '
自分の資格情報をコマンドラインで誰でも見られるように公開したいと思う人はいません。問題ありません。apprise は設定ファイルもサポートしています。特定の YAML 形式と非常に単純な TEXT 形式の両方を処理できます。 HTTP クエリ経由でこれらの設定ファイルを取得することもできます。構成ファイルの予想される構造の詳細については、こちらをご覧ください。
# By default if no url or configuration is specified apprise will attempt to load
# configuration files (if present) from:
# ~/.apprise
# ~/.apprise.yaml
# ~/.config/apprise.conf
# ~/.config/apprise.yaml
# /etc/apprise.conf
# /etc/apprise.yaml
# Also a subdirectory handling allows you to leverage plugins
# ~/.apprise/apprise
# ~/.apprise/apprise.yaml
# ~/.config/apprise/apprise.conf
# ~/.config/apprise/apprise.yaml
# /etc/apprise/apprise.yaml
# /etc/apprise/apprise.conf
# Windows users can store their default configuration files here:
# %APPDATA%/Apprise/apprise.conf
# %APPDATA%/Apprise/apprise.yaml
# %LOCALAPPDATA%/Apprise/apprise.conf
# %LOCALAPPDATA%/Apprise/apprise.yaml
# %ALLUSERSPROFILE%Appriseapprise.conf
# %ALLUSERSPROFILE%Appriseapprise.yaml
# %PROGRAMFILES%Appriseapprise.conf
# %PROGRAMFILES%Appriseapprise.yaml
# %COMMONPROGRAMFILES%Appriseapprise.conf
# %COMMONPROGRAMFILES%Appriseapprise.yaml
# The configuration files specified above can also be identified with a `.yml`
# extension or even just entirely removing the `.conf` extension altogether.
# If you loaded one of those files, your command line gets really easy:
apprise -vv -t ' my title ' -b ' my notification body '
# If you want to deviate from the default paths or specify more than one,
# just specify them using the --config switch:
apprise -vv -t ' my title ' -b ' my notification body '
--config=/path/to/my/config.yml
# Got lots of configuration locations? No problem, you can specify them all:
# Apprise can even fetch the configuration from over a network!
apprise -vv -t ' my title ' -b ' my notification body '
--config=/path/to/my/config.yml
--config=https://localhost/my/apprise/config
Apprise はファイルの添付にも対応しています。通知に必要な数の添付ファイルを指定します。
# Send a funny image you found on the internet to a colleague:
apprise -vv --title ' Agile Joke '
--body ' Did you see this one yet? '
--attach https://i.redd.it/my2t4d2fx0u31.jpg
' mailto://myemail:[email protected] '
# Easily send an update from a critical server to your dev team
apprise -vv --title ' system crash '
--body ' I do not think Jim fixed the bug; see attached... '
--attach /var/log/myprogram.log
--attach /var/debug/core.2345
--tag devteam
独自のカスタム コードをトリガーできるように独自のカスタムschema://
フックを作成するには、関数をラップする@notify
デコレータを含めるだけです。
from apprise . decorators import notify
#
# The below assumes you want to catch foobar:// calls:
#
@ notify ( on = "foobar" , name = "My Custom Foobar Plugin" )
def my_custom_notification_wrapper ( body , title , notify_type , * args , ** kwargs ):
"""My custom notification function that triggers on all foobar:// calls
"""
# Write all of your code here... as an example...
print ( "{}: {} - {}" . format ( notify_type . upper (), title , body ))
# Returning True/False is a way to relay your status back to Apprise.
# Returning nothing (None by default) is always interpreted as a Success
カスタム フックを定義したら、実行時にそのフックがどこにあるかを Apprise に伝えるだけです。
# By default if no plugin path is specified apprise will attempt to load
# all plugin files (if present) from the following directory paths:
# ~/.apprise/plugins
# ~/.config/apprise/plugins
# /var/lib/apprise/plugins
# Windows users can store their default plugin files in these directories:
# %APPDATA%/Apprise/plugins
# %LOCALAPPDATA%/Apprise/plugins
# %ALLUSERSPROFILE%Appriseplugins
# %PROGRAMFILES%Appriseplugins
# %COMMONPROGRAMFILES%Appriseplugins
# If you placed your plugin file within one of the directories already defined
# above, then your call simply needs to look like:
apprise -vv --title ' custom override '
--body ' the body of my message '
foobar: \
# However you can over-ride the path like so
apprise -vv --title ' custom override '
--body ' the body of my message '
--plugin-path /path/to/my/plugin.py
foobar: \
独自のカスタム通知やフックの作成について詳しくは、こちらをご覧ください。
コマンド ライン インターフェイス (CLI) を使用する場合は、環境変数を利用してデフォルト設定を事前に設定することもできます。
変数 | 説明 |
---|---|
APPRISE_URLS | コマンドラインで何も指定されていない場合に通知するデフォルトの URL を指定します。 --config ( -c ) が指定されている場合、これはこの変数への参照をオーバーライドします。複数のエントリを区切るには、空白やカンマ ( , ) を使用します。 |
APPRISE_CONFIG_PATH | 使用する構成検索パスを明示的に指定します (デフォルトを上書きします)。ここで定義されたパスは、開く/参照する絶対ファイル名を指している必要があります。複数のエントリを区切るには、セミコロン ( ; )、改行 ( n )、またはキャリッジ リターン ( r ) を使用します。 |
APPRISE_PLUGIN_PATH | 使用するカスタム プラグイン検索パスを明示的に指定します (デフォルトを上書きします)。複数のエントリを区切るには、セミコロン ( ; )、改行 ( n )、またはキャリッジ リターン ( r ) を使用します。 |
APPRISE_STORAGE_PATH | 使用する永続ストレージ パスを明示的に指定します (デフォルトを上書きします)。 |
Python アプリケーション内から通知を送信するには、次の手順を実行します。
import apprise
# Create an Apprise instance
apobj = apprise . Apprise ()
# Add all of the notification services by their server url.
# A sample email notification:
apobj . add ( 'mailto://myuserid:[email protected]' )
# A sample pushbullet notification
apobj . add ( 'pbul://o.gn5kj6nfhv736I7jC3cj3QLRiyhgl98b' )
# Then notify these services any time you desire. The below would
# notify all of the services loaded into our Apprise object.
apobj . notify (
body = 'what a great notification service!' ,
title = 'my notification title' ,
)
開発者も構成ファイルにアクセスする必要があります。幸いなことに、これらを使用するには、 Appriseオブジェクトが取り込める別のオブジェクト ( AppriseConfigと呼ばれる) を宣言するだけで済みます。また、設定エントリと通知エントリを何度でも自由に組み合わせることもできます。構成ファイルの予想される構造の詳細については、こちらをご覧ください。
import apprise
# Create an Apprise instance
apobj = apprise . Apprise ()
# Create an Config instance
config = apprise . AppriseConfig ()
# Add a configuration source:
config . add ( '/path/to/my/config.yml' )
# Add another...
config . add ( 'https://myserver:8080/path/to/config' )
# Make sure to add our config into our apprise object
apobj . add ( config )
# You can mix and match; add an entry directly if you want too
# In this entry we associate the 'admin' tag with our notification
apobj . add ( 'mailto://myuser:[email protected]' , tag = 'admin' )
# Then notify these services any time you desire. The below would
# notify all of the services that have not been bound to any specific
# tag.
apobj . notify (
body = 'what a great notification service!' ,
title = 'my notification title' ,
)
# Tagging allows you to specifically target only specific notification
# services you've loaded:
apobj . notify (
body = 'send a notification to our admin group' ,
title = 'Attention Admins' ,
# notify any services tagged with the 'admin' tag
tag = 'admin' ,
)
# If you want to notify absolutely everything (regardless of whether
# it's been tagged or not), just use the reserved tag of 'all':
apobj . notify (
body = 'send a notification to our admin group' ,
title = 'Attention Admins' ,
# notify absolutely everything loaded, regardless on wether
# it has a tag associated with it or not:
tag = 'all' ,
)
Apprise API を使用すると、添付ファイルを非常に簡単に送信できます。
import apprise
# Create an Apprise instance
apobj = apprise . Apprise ()
# Add at least one service you want to notify
apobj . add ( 'mailto://myuser:[email protected]' )
# Then send your attachment.
apobj . notify (
title = 'A great photo of our family' ,
body = 'The flash caused Jane to close her eyes! hah! :)' ,
attach = '/local/path/to/my/DSC_003.jpg' ,
)
# Send a web based attachment too! In the below example, we connect to a home
# security camera and send a live image to an email. By default remote web
# content is cached, but for a security camera we might want to call notify
# again later in our code, so we want our last image retrieved to expire(in
# this case after 3 seconds).
apobj . notify (
title = 'Latest security image' ,
attach = 'http://admin:password@hikvision-cam01/ISAPI/Streaming/channels/101/picture?cache=3'
)
複数の添付ファイルを送信するには、代わりにリスト、セット、またはタプルを使用します。
import apprise
# Create an Apprise instance
apobj = apprise . Apprise ()
# Add at least one service you want to notify
apobj . add ( 'mailto://myuser:[email protected]' )
# Now add all of the entries we're interested in:
attach = (
# ?name= allows us to rename the actual jpeg as found on the site
# to be another name when sent to our receipient(s)
'https://i.redd.it/my2t4d2fx0u31.jpg?name=FlyingToMars.jpg' ,
# Now add another:
'/path/to/funny/joke.gif' ,
)
# Send your multiple attachments with a single notify call:
apobj . notify (
title = 'Some good jokes.' ,
body = 'Hey guys, check out these!' ,
attach = attach ,
)
デフォルトでは、Apprise API 内から構築するカスタム プラグインはまったくロードされません。カスタム モジュールをロードするかどうかは開発者の裁量にあります。ただし、そうすることを選択した場合は、 Apprise()
インスタンスの初期化前にAppriseAsset()
オブジェクトにパス参照を含めるだけで簡単です。
例えば:
from apprise import Apprise
from apprise import AppriseAsset
# Prepare your Asset object so that you can enable the custom plugins to
# be loaded for your instance of Apprise...
asset = AppriseAsset ( plugin_paths = "/path/to/scan" )
# OR You can also generate scan more then one file too:
asset = AppriseAsset (
plugin_paths = [
# Iterate over all python libraries found in the root of the
# specified path. This is NOT a recursive (directory) scan; only
# the first level is parsed. HOWEVER, if a directory containing
# an __init__.py is found, it will be included in the load.
"/dir/containing/many/python/libraries" ,
# An absolute path to a plugin.py to exclusively load
"/path/to/plugin.py" ,
# if you point to a directory that has an __init__.py file found in
# it, then only that file is loaded (it's similar to point to a
# absolute .py file. Hence, there is no (level 1) scanning at all
# within the directory specified.
"/path/to/dir/library"
]
)
# Now that we've got our asset, we just work with our Apprise object as we
# normally do
aobj = Apprise ( asset = asset )
# If our new custom `foobar://` library was loaded (presuming we prepared
# one like in the examples above). then you would be able to safely add it
# into Apprise at this point
aobj . add ( 'foobar://' )
# Send our notification out through our foobar://
aobj . notify ( "test" )
独自のカスタム通知やフックの作成について詳しくは、こちらをご覧ください。
永続ストレージを使用すると、Apprise は繰り返し発生するアクションを必要に応じてディスクにキャッシュできます。これにより、通知の送信に使用されるオーバーヘッドを大幅に削減できます。
Apprise が使用できる永続ストレージの動作状態は 3 つあります。
auto
: 収集したキャッシュ情報をオンデマンドでファイルシステムにフラッシュします。このオプションは信じられないほど軽量です。これは、すべての CLI 使用におけるデフォルトの動作です。flush
: すべてのトランザクション中にキャッシュ情報をファイルシステムにフラッシュします。memory
: 永続ストレージを効果的に無効にします。使用される各プラグインに必要なデータのキャッシュはメモリ内で行われます。 Apprise は、永続ストレージが利用可能になる前と同様に効果的に動作します。この設定により、コンテンツがディスクに書き込まれることがなくなります。auto
またはflush
として動作するように設定されていない限り、Apprise が動作するモードです。これはAppriseAsset()
オブジェクトを通じて行われ、このドキュメントでさらに説明されます。 CLI 呼び出しでキーワードstorage
指定すると、利用可能な永続ストレージ オプションを確認できます。
# List all of the occupied space used by Apprise's Persistent Storage:
apprise storage list
# list is the default option, so the following does the same thing:
apprise storage
# You can prune all of your storage older then 30 days
# and not accessed for this period like so:
apprise storage prune
# You can do a hard reset (and wipe all persistent storage) with:
apprise storage clean
タグや URL 識別子を追加して結果をフィルタリングすることもできます。リスト ( apprise storage list
) を取得すると、以下が表示される場合があります。
# example output of 'apprise storage list':
1. f7077a65 0.00B unused
- matrixs://abcdef:****@synapse.example12.com/%23general?image=no&mode=off&version=3&msgtype...
tags: team
2. 0e873a46 81.10B active
- tgram://W...U//?image=False&detect=yes&silent=no&preview=no&content=before&mdv=v1&format=m...
tags: personal
3. abcd123 12.00B stale
(永続ストレージ) キャッシュの状態は次のとおりです。
unused
: このプラグインは再利用/キャッシュの目的でディスクに何もコミットしていません。active
: このプラグインはコンテンツをディスクに書き込みました。少なくとも、書き込み可能な永続的なストレージの場所が用意されています。stale
: システムは、URL が過去に書き込んだ可能性のある場所を検出しましたが、提供された URL を使用してその場所にリンクしているものはありません。スペースを無駄にしているか、役に立たなくなっている可能性があります。この情報を使用して、コマンドの後にURL ID (UID) 値を指定することで結果をフィルタリングできます。例えば:
# The below commands continue with the example already identified above
# the following would match abcd123 (even though just ab was provided)
# The output would only list the 'stale' entry above
apprise storage list ab
# knowing our filter is safe, we could remove it
# the below command would not obstruct our other to URLs and would only
# remove our stale one:
apprise storage clean ab
# Entries can be filtered by tag as well:
apprise storage list --tag=team
# You can match on multiple URL ID's as well:
# The followin would actually match the URL ID's of 1. and .2 above
apprise storage list f 0
CLI を使用する場合、永続ストレージはデフォルトでauto
の動作モードに設定されます。これは、呼び出し中に--storage-mode=
( -SM
) を指定することで変更できます。常に選択した値に設定されるようにしたい場合。
永続ストレージの詳細については、ここを参照してください。
開発者にとって、永続ストレージはデフォルトでmemory
の動作モードに設定されています。
これを有効にするかどうかは開発者の裁量にあります ( auto
またはflush
に切り替えることによって)。そうすることを選択した場合、 Apprise()
インスタンスの初期化前にAppriseAsset()
オブジェクトに情報を含めるだけで簡単です。
例えば:
from apprise import Apprise
from apprise import AppriseAsset
from apprise import PersistentStoreMode
# Prepare a location the persistent storage can write it's cached content to.
# By setting this path, this immediately assumes you wish to operate the
# persistent storage in the operational 'auto' mode
asset = AppriseAsset ( storage_path = "/path/to/save/data" )
# If you want to be more explicit and set more options, then you may do the
# following
asset = AppriseAsset (
# Set our storage path directory (minimum requirement to enable it)
storage_path = "/path/to/save/data" ,
# Set the mode... the options are:
# 1. PersistentStoreMode.MEMORY
# - disable persistent storage from writing to disk
# 2. PersistentStoreMode.AUTO
# - write to disk on demand
# 3. PersistentStoreMode.FLUSH
# - write to disk always and often
storage_mode = PersistentStoreMode . FLUSH
# The URL IDs are by default 8 characters in length. You can increase and
# decrease it's value here. The value must be > 2. The default value is 8
# if not otherwise specified
storage_idlen = 8 ,
)
# Now that we've got our asset, we just work with our Apprise object as we
# normally do
aobj = Apprise ( asset = asset )
永続ストレージの詳細については、ここを参照してください。
この方法や、独自の通知をカスタマイズするその他の方法について詳しく知りたい場合は、次のリンクを参照してください。
Apprise の改善に協力しませんか?