@prefix schema: <https://schema.org/> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix ks: <https://comcomponent.com/vocab/> .

<https://comcomponent.com/blog/2026/04/02/000-sme-bulk-email-vendor-neutral-practical-guide/#article>
    schema:about <https://comcomponent.com/knowledge/bulk-email-infrastructure/>, <https://comcomponent.com/knowledge/individual-send/> ;
    schema:mentions <https://comcomponent.com/knowledge/bcc-mass-send/>, <https://comcomponent.com/knowledge/subscriber-table/>, <https://comcomponent.com/knowledge/suppression-table/>, <https://comcomponent.com/knowledge/delivery-queue/>, <https://comcomponent.com/knowledge/smtp-relay/>, <https://comcomponent.com/knowledge/spf/>, <https://comcomponent.com/knowledge/dkim/>, <https://comcomponent.com/knowledge/dmarc/>, <https://comcomponent.com/knowledge/reverse-dns-ptr/>, <https://comcomponent.com/knowledge/list-unsubscribe-header/>, <https://comcomponent.com/knowledge/opt-in-consent/>, <https://comcomponent.com/knowledge/spam-rate/>, <https://comcomponent.com/knowledge/tokutei-email-law/>, <https://comcomponent.com/knowledge/sender-display-obligation/>, <https://comcomponent.com/knowledge/m365-smtp-methods/>, <https://comcomponent.com/knowledge/listmonk-oss/> .

<https://comcomponent.com/knowledge/bulk-email-infrastructure/> a skos:Concept ;
    skos:prefLabel "自社設計の配信基盤(購読者テーブル・抑止テーブル・配信キュー)"@ja ;
    skos:definition "購読者データ・配信ルール・送信者アイデンティティを自社側で持ち、SMTPリレーという出口だけを差し替えられるようにした一斉メール配信の仕組み。"@ja ;
    skos:altLabel "一斉メール配信基盤"@ja ;
    skos:altLabel "配信基盤"@ja ;
    ks:uses <https://comcomponent.com/knowledge/subscriber-table/> ;
    ks:uses <https://comcomponent.com/knowledge/suppression-table/> ;
    ks:uses <https://comcomponent.com/knowledge/delivery-queue/> .

<https://comcomponent.com/knowledge/individual-send/> a skos:Concept ;
    skos:prefLabel "宛先ごとの個別送信"@ja ;
    skos:definition "Bccでまとめて送るのではなく、1通ずつ宛先を分けて送信する方式。"@ja ;
    ks:recommendedFor <https://comcomponent.com/knowledge/bulk-email-infrastructure/> ;
    ks:requires <https://comcomponent.com/knowledge/subscriber-table/> .

<https://comcomponent.com/knowledge/subscriber-table/> a skos:Concept ;
    skos:prefLabel "購読者テーブル"@ja ;
    skos:definition "メールアドレス・同意日時・同意取得元・配信カテゴリ・配信停止状態などを持つ、送信対象の状態管理テーブル。"@ja .

<https://comcomponent.com/knowledge/suppression-table/> a skos:Concept ;
    skos:prefLabel "抑止テーブル"@ja ;
    skos:definition "配信停止・hard bounce・苦情など、送ってはいけない宛先を記録し、購読者テーブルより優先して参照されるテーブル。"@ja ;
    skos:altLabel "抑止リスト"@ja .

<https://comcomponent.com/knowledge/delivery-queue/> a skos:Concept ;
    skos:prefLabel "配信キュー"@ja ;
    skos:definition "購読者テーブル・抑止テーブル・配信テンプレートを入力に、宛先ごとの送信状態と送信結果を管理する配信基盤の中心部分。"@ja ;
    ks:requires <https://comcomponent.com/knowledge/subscriber-table/> ;
    ks:requires <https://comcomponent.com/knowledge/suppression-table/> ;
    ks:uses <https://comcomponent.com/knowledge/smtp-relay/> .

<https://comcomponent.com/knowledge/bcc-mass-send/> a skos:Concept ;
    skos:prefLabel "Bcc一斉送信"@ja ;
    skos:definition "多数の宛先をBccにまとめて入れて1通で送る、配信停止・バウンス管理・同意記録などの状態管理を持てない送信方法。"@ja ;
    skos:altLabel "Bcc一発送信"@ja ;
    ks:notRecommendedFor <https://comcomponent.com/knowledge/bulk-email-infrastructure/> .

<https://comcomponent.com/knowledge/smtp-relay/> a skos:Concept ;
    skos:prefLabel "SMTPリレー"@ja ;
    skos:definition "配信基盤から実際にインターネットへメールを投げてもらう出口。既存メール基盤・自前サーバーなど後から差し替え可能な部分。"@ja ;
    skos:altLabel "送信の出口"@ja .

<https://comcomponent.com/knowledge/m365-smtp-methods/> a skos:Concept ;
    skos:prefLabel "Microsoft 365のSMTP送信方式(4方式)"@ja ;
    skos:definition "メールボックスを持たない装置・アプリからMicrosoft 365経由で送信するための、認証付きClient SMTP submission・コネクタ利用のSMTP relay・認証なしDirect Send・High Volume Emailの4方式。"@ja ;
    skos:altLabel "Client SMTP submission" ;
    skos:altLabel "SMTP relay (M365)" ;
    skos:altLabel "Direct Send" ;
    skos:altLabel "High Volume Email" .

<https://comcomponent.com/knowledge/spf/> a skos:Concept ;
    skos:prefLabel "SPF(Sender Policy Framework)"@ja ;
    skos:definition "SMTPセッション中のMAIL FROM(エンベロープ送信者)が、そのドメインの送信元として許可されたIPかをDNSのTXTレコードで検証する仕組み。"@ja ;
    skos:altLabel "Sender Policy Framework" .

<https://comcomponent.com/knowledge/dmarc/> a skos:Concept ;
    skos:prefLabel "DMARC"@ja ;
    skos:definition "SPFやDKIMの成否だけでなく、それらの認証済みドメインがFrom:ドメインと整合しているかを見て、受信メールの扱いを判定する仕組み。"@ja ;
    skos:altLabel "Domain-based Message Authentication, Reporting, and Conformance" .

<https://comcomponent.com/knowledge/dkim/> a skos:Concept ;
    skos:prefLabel "DKIM(DomainKeys Identified Mail)"@ja ;
    skos:definition "メッセージの一部ヘッダと本文に署名を付け、受信側がDNSの公開鍵で検証する認証方式。署名ドメインはDKIM-Signatureのd=で表される。"@ja ;
    skos:altLabel "DomainKeys Identified Mail" .

<https://comcomponent.com/knowledge/reverse-dns-ptr/> a skos:Concept ;
    skos:prefLabel "逆引きPTR"@ja ;
    skos:definition "送信元IPアドレスからホスト名を引ける状態にする逆引きDNSレコード。主要な受信側が送信者の信頼性の判断材料にする。"@ja ;
    skos:altLabel "PTRレコード"@ja .

<https://comcomponent.com/knowledge/list-unsubscribe-header/> a skos:Concept ;
    skos:prefLabel "List-Unsubscribeヘッダ/ワンクリック配信停止"@ja ;
    skos:definition "メールのヘッダに配信停止先を記述し、確認画面なしで購読解除できるようにする仕組み。"@ja ;
    skos:altLabel "List-Unsubscribe" ;
    skos:altLabel "One-Click Unsubscribe" ;
    ks:recommendedFor <https://comcomponent.com/knowledge/bulk-email-infrastructure/> .

<https://comcomponent.com/knowledge/tokutei-email-law/> a skos:Concept ;
    skos:prefLabel "特定電子メール法"@ja ;
    skos:definition "広告・宣伝メールの送信について、事前同意や表示義務などを定める日本の法律。"@ja ;
    skos:altLabel "特定電子メールの送信の適正化等に関する法律"@ja ;
    ks:requires <https://comcomponent.com/knowledge/sender-display-obligation/> .

<https://comcomponent.com/knowledge/opt-in-consent/> a skos:Concept ;
    skos:prefLabel "opt-in(事前同意)"@ja ;
    skos:definition "受信者が自分の意思で購読を申し込んでいる状態。名刺やリスト購入で集めただけの宛先は含まれない。"@ja ;
    skos:altLabel "opt-in" ;
    ks:recommendedFor <https://comcomponent.com/knowledge/bulk-email-infrastructure/> .

<https://comcomponent.com/knowledge/sender-display-obligation/> a skos:Concept ;
    skos:prefLabel "送信者の表示義務"@ja ;
    skos:definition "送信者などの氏名・住所、受信拒否を受けるアドレスやURL、受信拒否できる旨、苦情・問い合わせ先などをメールに表示する法律上の義務。"@ja .

<https://comcomponent.com/knowledge/spam-rate/> a skos:Concept ;
    skos:prefLabel "苦情率(spam rate)"@ja ;
    skos:definition "受信者が「迷惑メール」ボタンを押した割合。主要な受信側が送信者の評判を判断する指標。"@ja ;
    skos:altLabel "spam rate" .

<https://comcomponent.com/knowledge/listmonk-oss/> a skos:Concept ;
    skos:prefLabel "listmonk"@ja ;
    skos:definition "AGPLv3のセルフホスト型ニュースレター配信ソフト。opt-inの購読者リスト管理、配信実績・バウンスの集計、複数SMTPを使うキューを備える。"@ja ;
    skos:altLabel "listmonk" ;
    ks:implements <https://comcomponent.com/knowledge/bulk-email-infrastructure/> .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/bulk-email-infrastructure/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/subscriber-table/> ;
    schema:description "配信基盤は、メールアドレス・同意日時・配信停止状態などを持つ購読者テーブルを土台にする。"@ja ;
    ks:evidence <https://support.google.com/a/answer/81126?hl=en> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/bulk-email-infrastructure/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/suppression-table/> ;
    schema:description "配信基盤は、配信停止・bounce・苦情を記録し購読者テーブルより優先させる抑止テーブルを土台にする。"@ja ;
    ks:evidence <https://senders.yahooinc.com/best-practices/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/bulk-email-infrastructure/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/delivery-queue/> ;
    schema:description "配信基盤の中心は、購読者テーブル・抑止テーブル・配信テンプレートを入力に持つ配信キューである。"@ja ;
    ks:evidence <https://support.google.com/a/answer/81126?hl=en> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/bcc-mass-send/> ;
    rdf:predicate ks:notRecommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/bulk-email-infrastructure/> ;
    schema:description "Bcc一斉送信は配信停止・バウンス管理・同意記録・送信速度制御を持てないため、外部向け継続配信の配信基盤としては推奨されない。"@ja ;
    ks:evidence <https://senders.yahooinc.com/best-practices/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/individual-send/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/bulk-email-infrastructure/> ;
    schema:description "宛先ごとの個別送信は、自社設計の配信基盤における本記事の推奨方式である。"@ja ;
    ks:evidence <https://support.google.com/a/answer/81126?hl=en> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/delivery-queue/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/subscriber-table/> ;
    schema:description "配信キューは誰に送るかを購読者テーブルから得る。"@ja ;
    ks:evidence <https://support.google.com/a/answer/81126?hl=en> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/delivery-queue/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/suppression-table/> ;
    schema:description "配信キューは送ってはいけない相手を抑止テーブルで除外する。"@ja ;
    ks:evidence <https://senders.yahooinc.com/best-practices/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/delivery-queue/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/smtp-relay/> ;
    schema:description "配信キューは実際の送信をSMTPリレーへ渡す。"@ja ;
    ks:evidence <https://learn.microsoft.com/exchange/mail-flow-best-practices/how-to-set-up-a-multifunction-device-or-application-to-send-email-using-microsoft-365-or-office-365> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/smtp-relay/> ;
    rdf:predicate ks:configuredBy ;
    rdf:object <https://comcomponent.com/knowledge/m365-smtp-methods/> ;
    schema:description "Microsoft 365を出口にする場合、認証付きClient SMTP submission・SMTP relay・Direct Send・High Volume Emailの4方式のいずれかで構成する。"@ja ;
    ks:evidence <https://learn.microsoft.com/exchange/mail-flow-best-practices/how-to-set-up-a-multifunction-device-or-application-to-send-email-using-microsoft-365-or-office-365> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/smtp-relay/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/spf/> ;
    schema:description "SMTPリレーの送信ドメインは、送ってよい送信元をSPFレコードで宣言している必要がある(GoogleはPTR・TLSに加え全送信者にSPFまたはDKIMのいずれか一方を求めており、SPFはその唯一の選択肢ではない。ただし大量送信者ではSPF・DKIM・DMARCすべてが求められる)。"@ja ;
    ks:evidence <https://www.rfc-editor.org/rfc/rfc7208> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/dmarc/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/spf/> ;
    schema:description "DMARCはSPFの認証結果とFromドメインとの整合を参照する(DMARCはSPFアライメントまたはDKIMアライメントのいずれかが通ればパスするため、DKIM側で整合していればSPF側の整合は必須ではない)。"@ja ;
    ks:evidence <https://www.rfc-editor.org/rfc/rfc7489> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/dmarc/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/dkim/> ;
    schema:description "DMARCはDKIMの認証結果とFromドメインとの整合も参照する(DMARCはSPFアライメントまたはDKIMアライメントのいずれかが通ればパスするため、SPF側で整合していればDKIM側の整合は必須ではない)。"@ja ;
    ks:evidence <https://www.rfc-editor.org/rfc/rfc7489> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/smtp-relay/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/reverse-dns-ptr/> ;
    schema:description "インターネット宛てに自前の送信サーバーから直接配信する場合、受信側の受け入れ要件として正引き・逆引きが整合する固定的な環境が求められる。社内向けの中継や、出口IPとPTRを提供事業者が持つマネージドリレーでは当てはまらない"@ja ;
    ks:evidence <https://support.google.com/a/answer/81126?hl=en> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/list-unsubscribe-header/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/bulk-email-infrastructure/> ;
    schema:description "本文内の見えるリンクに加え、List-Unsubscribeとワンクリック配信停止の実装が配信基盤に推奨される。"@ja ;
    ks:evidence <https://www.rfc-editor.org/rfc/rfc8058> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/tokutei-email-law/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/opt-in-consent/> ;
    schema:description "広告・宣伝メールは、特定電子メール法上、原則として事前同意が必要とされる(ホームページ等で公表されている事業用アドレスへの送信には例外規定があり、この場合は事前同意は必須ではない)。"@ja ;
    ks:evidence <https://www.caa.go.jp/policies/policy/consumer_transaction/specifed_email/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/tokutei-email-law/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/sender-display-obligation/> ;
    schema:description "特定電子メール法は、送信者の氏名・住所や受信拒否の通知先などの表示を送信者に義務付ける。"@ja ;
    ks:evidence <https://www.dekyo.or.jp/soudan/contents/taisaku/1-2.html> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/suppression-table/> ;
    rdf:predicate ks:mitigates ;
    rdf:object <https://comcomponent.com/knowledge/spam-rate/> ;
    schema:description "停止済み・bounce済みへの再送を抑止テーブルで防ぐことで、苦情率の悪化を抑えられる。"@ja ;
    ks:evidence <https://senders.yahooinc.com/best-practices/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/list-unsubscribe-header/> ;
    rdf:predicate ks:mitigates ;
    rdf:object <https://comcomponent.com/knowledge/spam-rate/> ;
    schema:description "配信停止をしやすくすることは、受信者が迷惑メール報告に頼る前に離脱できる経路を用意することになり、苦情率を抑えることにつながる。"@ja ;
    ks:evidence <https://support.google.com/a/answer/81126?hl=en> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/listmonk-oss/> ;
    rdf:predicate ks:implements ;
    rdf:object <https://comcomponent.com/knowledge/bulk-email-infrastructure/> ;
    schema:description "listmonkは、opt-inの購読者リスト管理・配信実績とバウンスの集計・複数SMTPのキューという、この記事と同じ構造をセルフホストで実装するOSSである。"@ja ;
    ks:evidence <https://listmonk.app/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/individual-send/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/subscriber-table/> ;
    schema:description "宛先ごとの個別送信を行うには、宛先ごとの状態を持つ購読者テーブルが前提になる。"@ja ;
    ks:evidence <https://support.google.com/a/answer/81126?hl=en> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/bcc-mass-send/> ;
    rdf:predicate ks:incompatibleWith ;
    rdf:object <https://comcomponent.com/knowledge/suppression-table/> ;
    schema:description "Bccでの一括送信は宛先ごとの送信結果を扱わないため、その送信で生じた配信停止・bounceを抑止テーブルへ個別に反映できない。抑止テーブルを送信前のフィルタとして参照するだけなら可能だが、結果を書き戻す双方向の運用としては成立しない。"@ja ;
    ks:evidence <https://senders.yahooinc.com/best-practices/> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/opt-in-consent/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/bulk-email-infrastructure/> ;
    schema:description "GoogleもYahooも、購入リストを使わずopt-inのみで集めたリストで配信することを求めている。"@ja ;
    ks:evidence <https://support.google.com/a/answer/81126?hl=en> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .
