131 lines
4.7 KiB
YAML
131 lines
4.7 KiB
YAML
|
openapi: 3.0.0
|
||
|
info:
|
||
|
description: A simple endpoint to send email messages
|
||
|
version: '0.1'
|
||
|
title: EXPMail
|
||
|
contact:
|
||
|
email: support@kumi.systems
|
||
|
tags:
|
||
|
- name: sending
|
||
|
description: Sending out an email
|
||
|
paths:
|
||
|
/sender.php:
|
||
|
post:
|
||
|
tags:
|
||
|
- sending
|
||
|
summary: Send out an email
|
||
|
operationId: sendMail
|
||
|
requestBody:
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
$ref: '#/components/schemas/Mail'
|
||
|
description: Object defining the email message to be sent
|
||
|
required: true
|
||
|
responses:
|
||
|
'200':
|
||
|
description: The request was received and processed.
|
||
|
content:
|
||
|
application/json:
|
||
|
schema:
|
||
|
type: object
|
||
|
properties:
|
||
|
status:
|
||
|
type: string
|
||
|
description: '"Success" if message was successfully sent, else "error"'
|
||
|
error:
|
||
|
type: string
|
||
|
description: 'Error message, only included if an error has occurred'
|
||
|
servers:
|
||
|
- url: 'https://expmail.kumi.live'
|
||
|
components:
|
||
|
schemas:
|
||
|
Placeholder:
|
||
|
type: object
|
||
|
required:
|
||
|
- name
|
||
|
properties:
|
||
|
name:
|
||
|
type: string
|
||
|
description: Name of the placeholder - will be converted to ALL CAPS by the server if it isn't already
|
||
|
value:
|
||
|
type: string
|
||
|
description: Value to insert into placeholder
|
||
|
Attachment:
|
||
|
type: object
|
||
|
required:
|
||
|
- url
|
||
|
properties:
|
||
|
url:
|
||
|
type: string
|
||
|
format: url
|
||
|
description: URL from where to fetch the file to attach
|
||
|
filename:
|
||
|
type: string
|
||
|
description: 'File name to use for email attachment. If not set, defaults to name from Content-Disposition header of URL if it exists, else the base name of the URL.'
|
||
|
Recipient:
|
||
|
type: object
|
||
|
required:
|
||
|
- email
|
||
|
properties:
|
||
|
email:
|
||
|
type: string
|
||
|
format: email
|
||
|
description: Email address of the recipient
|
||
|
name:
|
||
|
type: string
|
||
|
description: Name of the recipient
|
||
|
Mail:
|
||
|
type: object
|
||
|
required:
|
||
|
- recipients
|
||
|
- key
|
||
|
properties:
|
||
|
subject:
|
||
|
type: string
|
||
|
description: Subject of the email
|
||
|
html:
|
||
|
type: string
|
||
|
description: 'String containing the HTML content of the email. Takes precedence over `htmlurl` if provided. If both `html` and `text` or `texturl` are provided, will create a multi-part MIME message.'
|
||
|
htmlurl:
|
||
|
type: string
|
||
|
description: 'String containing the URL to a file containing the HTML content of the email. Ignored (but still validated) if `html` if provided. If both `htmlurl` and `text` or `texturl` are provided, will create a multi-part MIME message.'
|
||
|
text:
|
||
|
type: string
|
||
|
description: 'String containing the plain text content of the email. Takes precedence over `texturl` if provided. If both `text` and `html` or `htmlurl` are provided, will create a multi-part MIME message.'
|
||
|
texturl:
|
||
|
type: string
|
||
|
description: 'String containing the URL to a file containing the plain text content of the email. Ignored (but still validated) if `text` is provided. If both `texturl` and `html` or `htmlurl` are provided, will create a multi-part MIME message.'
|
||
|
sender:
|
||
|
allOf:
|
||
|
- description: '`Recipient` object to be used as "From:" address for the email'
|
||
|
- $ref: '#/components/schemas/Recipient'
|
||
|
recipients:
|
||
|
type: array
|
||
|
description: 'Array of `Recipient` objects to be used as "To:" addresses for the email'
|
||
|
items:
|
||
|
$ref: '#/components/schemas/Recipient'
|
||
|
ccs:
|
||
|
type: array
|
||
|
description: 'Array of `Recipient` objects to be used as "CC:" addresses for the email'
|
||
|
items:
|
||
|
$ref: '#/components/schemas/Recipient'
|
||
|
bccs:
|
||
|
type: array
|
||
|
description: 'Array of `Recipient` objects to be used as "BCC:" addresses for the email'
|
||
|
items:
|
||
|
$ref: '#/components/schemas/Recipient'
|
||
|
attachments:
|
||
|
type: array
|
||
|
description: Array of `Attachment` objects to be attached to the email
|
||
|
items:
|
||
|
$ref: '#/components/schemas/Attachment'
|
||
|
placeholders:
|
||
|
type: array
|
||
|
description: 'Array of `Placeholder` objects. Any occurrences of `{PLACEHOLDER_NAME}` (`name` in all caps enclosed with curly brackets) in the email''s HTML or plain text will be replaced by `value`.'
|
||
|
items:
|
||
|
$ref: '#/components/schemas/Placeholder'
|
||
|
key:
|
||
|
type: string
|
||
|
description: API key to authenticate request with
|