Mac OS X

Mac OS X < etc

WWDC21:macOS用メール機能拡張フレームワーク「MailKit」について解説

Build Mail app extensions

Build Mail app extensions

WWDC21において、Appleが、macOS Montereyから利用可能になるメール機能拡張について解説するセッション「Build Mail app extensions」が公開されています。

macOS Montereyでは、メール拡張機能を構築するための新しいフレームワーク「MailKit」を搭載しています。


これらの拡張機能は、Safari拡張機能や共有シート拡張機能などの他のアプリ拡張機能と同じ基盤の上に構築されていて、他のアプリ拡張機能と同様に、適切に署名されたMacアプリに含めること、既存のアプリにバンドルすること、Mac App Storeで配布することもできます。

メール拡張機能は、メール拡張機能の未来で、現在のプラグイン形式は、将来のmacOSリリースでサポートされなくなります。


MailKit

MailKit

Mailのユーザーエクスペリエンスを拡張する4つの新しい方法を紹介します。

まず、構成拡張機能を使用すると、メールメッセージを作成するときに新しいワークフローが可能になります。

アクション拡張機能は、受信メッセージにカスタムルールを提供することで、受信トレイを管理するのに役立ちます。

コンテンツブロッキング拡張機能は、メールメッセージ用のWebKitコンテンツブロッカーを提供します。

メッセージセキュリティ拡張機能は、人々がメールを送受信するときにメッセージに署名、暗号化、および復号化することにより、セキュリティをさらに強化できます。


MailKit

MailKit

拡張機能は、ユーザーが編集しているときに受信者の電子メールアドレスを検証したり、作成中のメッセージに関する追加のコンテキストをView Controllerに提供したり、送信メッセージに追加のヘッダーを設定したり、メッセージが送信される前にメッセージのエラーをユーザーに警告したりできます。

Safariコンテンツブロッカー拡張機能のコンテンツルールリストが既にある場合は、メールアプリ拡張機能にも同じルールを使用できます。


この記事をシェアする

おすすめ記事

この記事のハッシュタグ から関連する記事を表示しています。

500 Internal Server Error.

Trying to access array offset on value of type bool in /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry.php line: 156

#0 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry.php(156): Acms\{closure}('Trying to access array offset on value of type boo...', '/home/appleple2020/appleple.jp/public_html/mac.app...', Array)
#1 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry/Body.php(634): buildColumn(Array, Template, '41426')
#2 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET.php(221): get()
#3 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET.php(203): cache()
#4 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(5350): fire()
#5 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(4747): boot('Entry_Body', '
<!-- BEGIN notFound -->
<section class="acms-entr...', ' id="body_blog"', Field_Validation, Field, Array)
#6 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(4603): mainBuild('<!DOCTYPE html>
<html class="no-js" lang="ja">

<h...', Field_Validation)
#7 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(1632): build('<!DOCTYPE html>
<html class="no-js" lang="ja">

<h...', Field_Validation)
#8 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1): eval()
#9 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(529): {closure}('

//--------------------
// default statuscode
htt...')
#10 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1): eval()
#11 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/main.php(257): {closure}(' $____='printf';$___________='acms-ec70bb35...')
#12 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/index.php(69): require_once('/home/appleple2020/appleple.jp/public_html/mac.app...')

Trying to access array offset on value of type bool in /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry.php line: 157

#0 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry.php(157): Acms\{closure}('Trying to access array offset on value of type boo...', '/home/appleple2020/appleple.jp/public_html/mac.app...', Array)
#1 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry/Body.php(634): buildColumn(Array, Template, '41426')
#2 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET.php(221): get()
#3 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET.php(203): cache()
#4 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(5350): fire()
#5 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(4747): boot('Entry_Body', '
<!-- BEGIN notFound -->
<section class="acms-entr...', ' id="body_blog"', Field_Validation, Field, Array)
#6 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(4603): mainBuild('<!DOCTYPE html>
<html class="no-js" lang="ja">

<h...', Field_Validation)
#7 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(1632): build('<!DOCTYPE html>
<html class="no-js" lang="ja">

<h...', Field_Validation)
#8 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1): eval()
#9 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(529): {closure}('

//--------------------
// default statuscode
htt...')
#10 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1): eval()
#11 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/main.php(257): {closure}(' $____='printf';$___________='acms-ec70bb35...')
#12 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/index.php(69): require_once('/home/appleple2020/appleple.jp/public_html/mac.app...')

Trying to access array offset on value of type bool in /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry.php line: 156

#0 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry.php(156): Acms\{closure}('Trying to access array offset on value of type boo...', '/home/appleple2020/appleple.jp/public_html/mac.app...', Array)
#1 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry/Body.php(634): buildColumn(Array, Template, '41426')
#2 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET.php(221): get()
#3 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET.php(203): cache()
#4 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(5350): fire()
#5 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(4747): boot('Entry_Body', '
<!-- BEGIN notFound -->
<section class="acms-entr...', ' id="body_blog"', Field_Validation, Field, Array)
#6 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(4603): mainBuild('<!DOCTYPE html>
<html class="no-js" lang="ja">

<h...', Field_Validation)
#7 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(1632): build('<!DOCTYPE html>
<html class="no-js" lang="ja">

<h...', Field_Validation)
#8 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1): eval()
#9 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(529): {closure}('

//--------------------
// default statuscode
htt...')
#10 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1): eval()
#11 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/main.php(257): {closure}(' $____='printf';$___________='acms-ec70bb35...')
#12 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/index.php(69): require_once('/home/appleple2020/appleple.jp/public_html/mac.app...')

Trying to access array offset on value of type bool in /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry.php line: 157

#0 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry.php(157): Acms\{closure}('Trying to access array offset on value of type boo...', '/home/appleple2020/appleple.jp/public_html/mac.app...', Array)
#1 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry/Body.php(634): buildColumn(Array, Template, '41426')
#2 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET.php(221): get()
#3 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET.php(203): cache()
#4 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(5350): fire()
#5 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(4747): boot('Entry_Body', '
<!-- BEGIN notFound -->
<section class="acms-entr...', ' id="body_blog"', Field_Validation, Field, Array)
#6 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(4603): mainBuild('<!DOCTYPE html>
<html class="no-js" lang="ja">

<h...', Field_Validation)
#7 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(1632): build('<!DOCTYPE html>
<html class="no-js" lang="ja">

<h...', Field_Validation)
#8 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1): eval()
#9 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(529): {closure}('

//--------------------
// default statuscode
htt...')
#10 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1): eval()
#11 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/main.php(257): {closure}(' $____='printf';$___________='acms-ec70bb35...')
#12 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/index.php(69): require_once('/home/appleple2020/appleple.jp/public_html/mac.app...')

Trying to access array offset on value of type bool in /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry.php line: 156

#0 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry.php(156): Acms\{closure}('Trying to access array offset on value of type boo...', '/home/appleple2020/appleple.jp/public_html/mac.app...', Array)
#1 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry/Body.php(634): buildColumn(Array, Template, '41426')
#2 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET.php(221): get()
#3 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET.php(203): cache()
#4 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(5350): fire()
#5 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(4747): boot('Entry_Body', '
<!-- BEGIN notFound -->
<section class="acms-entr...', ' id="body_blog"', Field_Validation, Field, Array)
#6 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(4603): mainBuild('<!DOCTYPE html>
<html class="no-js" lang="ja">

<h...', Field_Validation)
#7 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(1632): build('<!DOCTYPE html>
<html class="no-js" lang="ja">

<h...', Field_Validation)
#8 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1): eval()
#9 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(529): {closure}('

//--------------------
// default statuscode
htt...')
#10 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1): eval()
#11 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/main.php(257): {closure}(' $____='printf';$___________='acms-ec70bb35...')
#12 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/index.php(69): require_once('/home/appleple2020/appleple.jp/public_html/mac.app...')

Trying to access array offset on value of type bool in /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry.php line: 157

#0 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry.php(157): Acms\{closure}('Trying to access array offset on value of type boo...', '/home/appleple2020/appleple.jp/public_html/mac.app...', Array)
#1 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry/Body.php(634): buildColumn(Array, Template, '41426')
#2 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET.php(221): get()
#3 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET.php(203): cache()
#4 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(5350): fire()
#5 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(4747): boot('Entry_Body', '
<!-- BEGIN notFound -->
<section class="acms-entr...', ' id="body_blog"', Field_Validation, Field, Array)
#6 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(4603): mainBuild('<!DOCTYPE html>
<html class="no-js" lang="ja">

<h...', Field_Validation)
#7 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(1632): build('<!DOCTYPE html>
<html class="no-js" lang="ja">

<h...', Field_Validation)
#8 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1): eval()
#9 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(529): {closure}('

//--------------------
// default statuscode
htt...')
#10 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1): eval()
#11 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/main.php(257): {closure}(' $____='printf';$___________='acms-ec70bb35...')
#12 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/index.php(69): require_once('/home/appleple2020/appleple.jp/public_html/mac.app...')