expmail/doc/swagger.yaml
Kumi 41a337d875 Version bump to 0.3
Added option to assign cid to attachments
Made HTML and plain text retrieval use File class
Removed now unused helpers.php
Updated OpenAPI documentation
2020-09-04 16:13:21 +02:00

134 lines
4.9 KiB
YAML

openapi: 3.0.0
info:
description: A simple endpoint to send email messages
version: '0.3'
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.'
cid:
type: string
description: 'Content ID for the attachment, needed for embedded images - use something like `<img src="cid:YOUR_CID">` in your HTML code'
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 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 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