mirror of
https://github.com/axllent/mailpit.git
synced 2025-01-26 03:52:09 +02:00
d01fb4044e
@see #151
1278 lines
33 KiB
JSON
1278 lines
33 KiB
JSON
{
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"schemes": [
|
|
"http"
|
|
],
|
|
"swagger": "2.0",
|
|
"info": {
|
|
"description": "OpenAPI 2.0 documentation for [Mailpit](https://github.com/axllent/mailpit).",
|
|
"title": "Mailpit API",
|
|
"contact": {
|
|
"name": "GitHub",
|
|
"url": "https://github.com/axllent/mailpit"
|
|
},
|
|
"license": {
|
|
"name": "MIT license",
|
|
"url": "https://github.com/axllent/mailpit/blob/develop/LICENSE"
|
|
},
|
|
"version": "v1"
|
|
},
|
|
"paths": {
|
|
"/api/v1/info": {
|
|
"get": {
|
|
"description": "Returns basic runtime information, message totals and latest release version.",
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"schemes": [
|
|
"http",
|
|
"https"
|
|
],
|
|
"tags": [
|
|
"application"
|
|
],
|
|
"summary": "Get application information",
|
|
"operationId": "AppInformation",
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/responses/InfoResponse"
|
|
},
|
|
"default": {
|
|
"$ref": "#/responses/ErrorResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/message/{ID}": {
|
|
"get": {
|
|
"description": "Returns the summary of a message, marking the message as read.",
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"schemes": [
|
|
"http",
|
|
"https"
|
|
],
|
|
"tags": [
|
|
"message"
|
|
],
|
|
"summary": "Get message summary",
|
|
"operationId": "Message",
|
|
"parameters": [
|
|
{
|
|
"type": "string",
|
|
"description": "Database ID",
|
|
"name": "ID",
|
|
"in": "path",
|
|
"required": true
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Message",
|
|
"schema": {
|
|
"$ref": "#/definitions/Message"
|
|
}
|
|
},
|
|
"default": {
|
|
"$ref": "#/responses/ErrorResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/message/{ID}/headers": {
|
|
"get": {
|
|
"description": "Returns the message headers as an array.",
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"schemes": [
|
|
"http",
|
|
"https"
|
|
],
|
|
"tags": [
|
|
"message"
|
|
],
|
|
"summary": "Get message headers",
|
|
"operationId": "Headers",
|
|
"parameters": [
|
|
{
|
|
"type": "string",
|
|
"description": "Database ID",
|
|
"name": "ID",
|
|
"in": "path",
|
|
"required": true
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "MessageHeaders",
|
|
"schema": {
|
|
"$ref": "#/definitions/MessageHeaders"
|
|
}
|
|
},
|
|
"default": {
|
|
"$ref": "#/responses/ErrorResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/message/{ID}/html-check": {
|
|
"get": {
|
|
"description": "Returns the summary of the message HTML checker.\n\nNOTE: This feature is currently in beta and is documented for reference only.\nPlease do not integrate with it (yet) as there may be changes.",
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"schemes": [
|
|
"http",
|
|
"https"
|
|
],
|
|
"tags": [
|
|
"Other"
|
|
],
|
|
"summary": "HTML check (beta)",
|
|
"operationId": "HTMLCheckResponse",
|
|
"parameters": [
|
|
{
|
|
"type": "string",
|
|
"description": "Database ID",
|
|
"name": "ID",
|
|
"in": "path",
|
|
"required": true
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "HTMLCheckResponse",
|
|
"schema": {
|
|
"$ref": "#/definitions/HTMLCheckResponse"
|
|
}
|
|
},
|
|
"default": {
|
|
"$ref": "#/responses/ErrorResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/message/{ID}/link-check": {
|
|
"get": {
|
|
"description": "Returns the summary of the message Link checker.\n\nNOTE: This feature is currently in beta and is documented for reference only.\nPlease do not integrate with it (yet) as there may be changes.",
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"schemes": [
|
|
"http",
|
|
"https"
|
|
],
|
|
"tags": [
|
|
"Other"
|
|
],
|
|
"summary": "Link check (beta)",
|
|
"operationId": "LinkCheckResponse",
|
|
"parameters": [
|
|
{
|
|
"type": "string",
|
|
"description": "Database ID",
|
|
"name": "ID",
|
|
"in": "path",
|
|
"required": true
|
|
},
|
|
{
|
|
"type": "boolean",
|
|
"default": false,
|
|
"description": "Follow redirects",
|
|
"name": "follow",
|
|
"in": "query"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "LinkCheckResponse",
|
|
"schema": {
|
|
"$ref": "#/definitions/LinkCheckResponse"
|
|
}
|
|
},
|
|
"default": {
|
|
"$ref": "#/responses/ErrorResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/message/{ID}/part/{PartID}": {
|
|
"get": {
|
|
"description": "This will return the attachment part using the appropriate Content-Type.",
|
|
"produces": [
|
|
"application/*",
|
|
"image/*",
|
|
"text/*"
|
|
],
|
|
"schemes": [
|
|
"http",
|
|
"https"
|
|
],
|
|
"tags": [
|
|
"message"
|
|
],
|
|
"summary": "Get message attachment",
|
|
"operationId": "Attachment",
|
|
"parameters": [
|
|
{
|
|
"type": "string",
|
|
"description": "Database ID",
|
|
"name": "ID",
|
|
"in": "path",
|
|
"required": true
|
|
},
|
|
{
|
|
"type": "string",
|
|
"description": "Attachment part ID",
|
|
"name": "PartID",
|
|
"in": "path",
|
|
"required": true
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/responses/BinaryResponse"
|
|
},
|
|
"default": {
|
|
"$ref": "#/responses/ErrorResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/message/{ID}/part/{PartID}/thumb": {
|
|
"get": {
|
|
"description": "This will return a cropped 180x120 JPEG thumbnail of an image attachment.\nIf the image is smaller than 180x120 then the image is padded. If the attachment is not an image then a blank image is returned.",
|
|
"produces": [
|
|
"image/jpeg"
|
|
],
|
|
"schemes": [
|
|
"http",
|
|
"https"
|
|
],
|
|
"tags": [
|
|
"message"
|
|
],
|
|
"summary": "Get an attachment image thumbnail",
|
|
"operationId": "Thumbnail",
|
|
"parameters": [
|
|
{
|
|
"type": "string",
|
|
"description": "Database ID",
|
|
"name": "ID",
|
|
"in": "path",
|
|
"required": true
|
|
},
|
|
{
|
|
"type": "string",
|
|
"description": "Attachment part ID",
|
|
"name": "PartID",
|
|
"in": "path",
|
|
"required": true
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/responses/BinaryResponse"
|
|
},
|
|
"default": {
|
|
"$ref": "#/responses/ErrorResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/message/{ID}/raw": {
|
|
"get": {
|
|
"description": "Returns the full email source as plain text.",
|
|
"produces": [
|
|
"text/plain"
|
|
],
|
|
"schemes": [
|
|
"http",
|
|
"https"
|
|
],
|
|
"tags": [
|
|
"message"
|
|
],
|
|
"summary": "Get message source",
|
|
"operationId": "Raw",
|
|
"parameters": [
|
|
{
|
|
"type": "string",
|
|
"description": "Database ID",
|
|
"name": "ID",
|
|
"in": "path",
|
|
"required": true
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/responses/TextResponse"
|
|
},
|
|
"default": {
|
|
"$ref": "#/responses/ErrorResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/message/{ID}/release": {
|
|
"post": {
|
|
"description": "Release a message via a pre-configured external SMTP server..",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"text/plain"
|
|
],
|
|
"schemes": [
|
|
"http",
|
|
"https"
|
|
],
|
|
"tags": [
|
|
"message"
|
|
],
|
|
"summary": "Release message",
|
|
"operationId": "Release",
|
|
"parameters": [
|
|
{
|
|
"type": "string",
|
|
"description": "Database ID",
|
|
"name": "ID",
|
|
"in": "path",
|
|
"required": true
|
|
},
|
|
{
|
|
"description": "Array of email addresses to release message to",
|
|
"name": "to",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"description": "Array of email addresses to release message to",
|
|
"type": "object",
|
|
"$ref": "#/definitions/ReleaseMessageRequest"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/responses/OKResponse"
|
|
},
|
|
"default": {
|
|
"$ref": "#/responses/ErrorResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/messages": {
|
|
"get": {
|
|
"description": "Returns messages from the mailbox ordered from newest to oldest.",
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"schemes": [
|
|
"http",
|
|
"https"
|
|
],
|
|
"tags": [
|
|
"messages"
|
|
],
|
|
"summary": "List messages",
|
|
"operationId": "GetMessages",
|
|
"parameters": [
|
|
{
|
|
"type": "integer",
|
|
"default": 0,
|
|
"description": "Pagination offset",
|
|
"name": "start",
|
|
"in": "query"
|
|
},
|
|
{
|
|
"type": "integer",
|
|
"default": 50,
|
|
"description": "Limit results",
|
|
"name": "limit",
|
|
"in": "query"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/responses/MessagesSummaryResponse"
|
|
},
|
|
"default": {
|
|
"$ref": "#/responses/ErrorResponse"
|
|
}
|
|
}
|
|
},
|
|
"put": {
|
|
"description": "If no IDs are provided then all messages are updated.",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"text/plain"
|
|
],
|
|
"schemes": [
|
|
"http",
|
|
"https"
|
|
],
|
|
"tags": [
|
|
"messages"
|
|
],
|
|
"summary": "Set read status",
|
|
"operationId": "SetReadStatus",
|
|
"parameters": [
|
|
{
|
|
"description": "Database IDs to update",
|
|
"name": "ids",
|
|
"in": "body",
|
|
"schema": {
|
|
"description": "Database IDs to update",
|
|
"type": "object",
|
|
"$ref": "#/definitions/SetReadStatusRequest"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/responses/OKResponse"
|
|
},
|
|
"default": {
|
|
"$ref": "#/responses/ErrorResponse"
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"description": "If no IDs are provided then all messages are deleted.",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"text/plain"
|
|
],
|
|
"schemes": [
|
|
"http",
|
|
"https"
|
|
],
|
|
"tags": [
|
|
"messages"
|
|
],
|
|
"summary": "Delete messages",
|
|
"operationId": "Delete",
|
|
"parameters": [
|
|
{
|
|
"description": "Database IDs to delete",
|
|
"name": "ids",
|
|
"in": "body",
|
|
"schema": {
|
|
"description": "Database IDs to delete",
|
|
"type": "object",
|
|
"$ref": "#/definitions/DeleteRequest"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/responses/OKResponse"
|
|
},
|
|
"default": {
|
|
"$ref": "#/responses/ErrorResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/search": {
|
|
"get": {
|
|
"description": "Returns the latest messages matching a search.",
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"schemes": [
|
|
"http",
|
|
"https"
|
|
],
|
|
"tags": [
|
|
"messages"
|
|
],
|
|
"summary": "Search messages",
|
|
"operationId": "MessagesSummary",
|
|
"parameters": [
|
|
{
|
|
"type": "string",
|
|
"description": "Search query",
|
|
"name": "query",
|
|
"in": "query",
|
|
"required": true
|
|
},
|
|
{
|
|
"type": "integer",
|
|
"default": 0,
|
|
"description": "Pagination offset",
|
|
"name": "start",
|
|
"in": "query"
|
|
},
|
|
{
|
|
"type": "integer",
|
|
"default": 50,
|
|
"description": "Limit results",
|
|
"name": "limit",
|
|
"in": "query"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/responses/MessagesSummaryResponse"
|
|
},
|
|
"default": {
|
|
"$ref": "#/responses/ErrorResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/tags": {
|
|
"put": {
|
|
"description": "To remove all tags from a message, pass an empty tags array.",
|
|
"consumes": [
|
|
"application/json"
|
|
],
|
|
"produces": [
|
|
"text/plain"
|
|
],
|
|
"schemes": [
|
|
"http",
|
|
"https"
|
|
],
|
|
"tags": [
|
|
"tags"
|
|
],
|
|
"summary": "Set message tags",
|
|
"operationId": "SetTags",
|
|
"parameters": [
|
|
{
|
|
"description": "Database IDs to update",
|
|
"name": "ids",
|
|
"in": "body",
|
|
"required": true,
|
|
"schema": {
|
|
"description": "Database IDs to update",
|
|
"type": "object",
|
|
"$ref": "#/definitions/SetTagsRequest"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/responses/OKResponse"
|
|
},
|
|
"default": {
|
|
"$ref": "#/responses/ErrorResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/webui": {
|
|
"get": {
|
|
"description": "Returns configuration settings for the web UI.\nIntended for web UI only!",
|
|
"produces": [
|
|
"application/json"
|
|
],
|
|
"schemes": [
|
|
"http",
|
|
"https"
|
|
],
|
|
"tags": [
|
|
"application"
|
|
],
|
|
"summary": "Get web UI configuration",
|
|
"operationId": "WebUIConfiguration",
|
|
"responses": {
|
|
"200": {
|
|
"$ref": "#/responses/WebUIConfigurationResponse"
|
|
},
|
|
"default": {
|
|
"$ref": "#/responses/ErrorResponse"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"definitions": {
|
|
"Address": {
|
|
"description": "An address such as \"Barry Gibbs \u003cbg@example.com\u003e\" is represented\nas Address{Name: \"Barry Gibbs\", Address: \"bg@example.com\"}.",
|
|
"type": "object",
|
|
"title": "Address represents a single mail address.",
|
|
"properties": {
|
|
"Address": {
|
|
"type": "string"
|
|
},
|
|
"Name": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"x-go-package": "net/mail"
|
|
},
|
|
"AppInformation": {
|
|
"description": "Response includes the current and latest Mailpit version, database info, and memory usage",
|
|
"type": "object",
|
|
"properties": {
|
|
"Database": {
|
|
"description": "Database path",
|
|
"type": "string"
|
|
},
|
|
"DatabaseSize": {
|
|
"description": "Database size in bytes",
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"LatestVersion": {
|
|
"description": "Latest Mailpit version",
|
|
"type": "string"
|
|
},
|
|
"Memory": {
|
|
"description": "Current memory usage in bytes",
|
|
"type": "integer",
|
|
"format": "uint64"
|
|
},
|
|
"Messages": {
|
|
"description": "Total number of messages in the database",
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"Version": {
|
|
"description": "Current Mailpit version",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"x-go-name": "appInformation",
|
|
"x-go-package": "github.com/axllent/mailpit/server/apiv1"
|
|
},
|
|
"Attachment": {
|
|
"description": "Attachment struct for inline and attachments",
|
|
"type": "object",
|
|
"properties": {
|
|
"ContentID": {
|
|
"description": "Content ID",
|
|
"type": "string"
|
|
},
|
|
"ContentType": {
|
|
"description": "Content type",
|
|
"type": "string"
|
|
},
|
|
"FileName": {
|
|
"description": "File name",
|
|
"type": "string"
|
|
},
|
|
"PartID": {
|
|
"description": "Attachment part ID",
|
|
"type": "string"
|
|
},
|
|
"Size": {
|
|
"description": "Size in bytes",
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
},
|
|
"x-go-package": "github.com/axllent/mailpit/storage"
|
|
},
|
|
"DeleteRequest": {
|
|
"description": "Delete request",
|
|
"type": "object",
|
|
"properties": {
|
|
"ids": {
|
|
"description": "ids\nin:body",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"x-go-name": "IDs"
|
|
}
|
|
},
|
|
"x-go-name": "deleteRequest",
|
|
"x-go-package": "github.com/axllent/mailpit/server/apiv1"
|
|
},
|
|
"HTMLCheckResponse": {
|
|
"description": "Response represents the HTML check response struct",
|
|
"type": "object",
|
|
"properties": {
|
|
"Platforms": {
|
|
"description": "All platforms tested, mainly for the web UI",
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"Total": {
|
|
"$ref": "#/definitions/HTMLCheckTotal"
|
|
},
|
|
"Warnings": {
|
|
"description": "List of warnings from tests",
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/HTMLCheckWarning"
|
|
}
|
|
}
|
|
},
|
|
"x-go-name": "Response",
|
|
"x-go-package": "github.com/axllent/mailpit/utils/htmlcheck"
|
|
},
|
|
"HTMLCheckResult": {
|
|
"description": "Result struct",
|
|
"type": "object",
|
|
"properties": {
|
|
"Family": {
|
|
"description": "Family eg: Outlook, Mozilla Thunderbird",
|
|
"type": "string"
|
|
},
|
|
"Name": {
|
|
"description": "Friendly name of result, combining family, platform \u0026 version",
|
|
"type": "string"
|
|
},
|
|
"NoteNumber": {
|
|
"description": "Note number for partially supported if applicable",
|
|
"type": "string"
|
|
},
|
|
"Platform": {
|
|
"description": "Platform eg: ios, android, windows",
|
|
"type": "string"
|
|
},
|
|
"Support": {
|
|
"description": "Support [yes, no, partial]",
|
|
"type": "string"
|
|
},
|
|
"Version": {
|
|
"description": "Family version eg: 4.7.1, 2019-10, 10.3",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"x-go-name": "Result",
|
|
"x-go-package": "github.com/axllent/mailpit/utils/htmlcheck"
|
|
},
|
|
"HTMLCheckScore": {
|
|
"description": "Score struct",
|
|
"type": "object",
|
|
"properties": {
|
|
"Found": {
|
|
"description": "Number of matches in the document",
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"Partial": {
|
|
"description": "Total percentage partially supported",
|
|
"type": "number",
|
|
"format": "float"
|
|
},
|
|
"Supported": {
|
|
"description": "Total percentage supported",
|
|
"type": "number",
|
|
"format": "float"
|
|
},
|
|
"Unsupported": {
|
|
"description": "Total percentage unsupported",
|
|
"type": "number",
|
|
"format": "float"
|
|
}
|
|
},
|
|
"x-go-name": "Score",
|
|
"x-go-package": "github.com/axllent/mailpit/utils/htmlcheck"
|
|
},
|
|
"HTMLCheckTotal": {
|
|
"description": "Total weighted result for all scores",
|
|
"type": "object",
|
|
"properties": {
|
|
"Nodes": {
|
|
"description": "Total number of HTML nodes detected in message",
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"Partial": {
|
|
"description": "Overall percentage partially supported",
|
|
"type": "number",
|
|
"format": "float"
|
|
},
|
|
"Supported": {
|
|
"description": "Overall percentage supported",
|
|
"type": "number",
|
|
"format": "float"
|
|
},
|
|
"Tests": {
|
|
"description": "Total number of tests done",
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"Unsupported": {
|
|
"description": "Overall percentage unsupported",
|
|
"type": "number",
|
|
"format": "float"
|
|
}
|
|
},
|
|
"x-go-name": "Total",
|
|
"x-go-package": "github.com/axllent/mailpit/utils/htmlcheck"
|
|
},
|
|
"HTMLCheckWarning": {
|
|
"description": "Warning represents a failed test",
|
|
"type": "object",
|
|
"properties": {
|
|
"Category": {
|
|
"description": "Category [css, html]",
|
|
"type": "string"
|
|
},
|
|
"Description": {
|
|
"description": "Description",
|
|
"type": "string"
|
|
},
|
|
"Keywords": {
|
|
"description": "Keywords",
|
|
"type": "string"
|
|
},
|
|
"NotesByNumber": {
|
|
"description": "Notes based on results",
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"Results": {
|
|
"description": "Test results",
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/HTMLCheckResult"
|
|
}
|
|
},
|
|
"Score": {
|
|
"$ref": "#/definitions/HTMLCheckScore"
|
|
},
|
|
"Slug": {
|
|
"description": "Slug identifier",
|
|
"type": "string"
|
|
},
|
|
"Tags": {
|
|
"description": "Tags",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"Title": {
|
|
"description": "Friendly title",
|
|
"type": "string"
|
|
},
|
|
"URL": {
|
|
"description": "URL to caniemail.com",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"x-go-name": "Warning",
|
|
"x-go-package": "github.com/axllent/mailpit/utils/htmlcheck"
|
|
},
|
|
"Link": {
|
|
"description": "Link struct",
|
|
"type": "object",
|
|
"properties": {
|
|
"Status": {
|
|
"description": "HTTP status definition",
|
|
"type": "string"
|
|
},
|
|
"StatusCode": {
|
|
"description": "HTTP status code",
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"URL": {
|
|
"description": "Link URL",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"x-go-package": "github.com/axllent/mailpit/utils/linkcheck"
|
|
},
|
|
"LinkCheckResponse": {
|
|
"description": "Response represents the Link check response",
|
|
"type": "object",
|
|
"properties": {
|
|
"Errors": {
|
|
"description": "Total number of errors",
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"Links": {
|
|
"description": "Tested links",
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/Link"
|
|
}
|
|
}
|
|
},
|
|
"x-go-name": "Response",
|
|
"x-go-package": "github.com/axllent/mailpit/utils/linkcheck"
|
|
},
|
|
"Message": {
|
|
"description": "Message data excluding physical attachments",
|
|
"type": "object",
|
|
"properties": {
|
|
"Attachments": {
|
|
"description": "Message attachments",
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/Attachment"
|
|
}
|
|
},
|
|
"Bcc": {
|
|
"description": "Bcc addresses",
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/Address"
|
|
}
|
|
},
|
|
"Cc": {
|
|
"description": "Cc addresses",
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/Address"
|
|
}
|
|
},
|
|
"Date": {
|
|
"description": "Message date if set, else date received",
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"From": {
|
|
"$ref": "#/definitions/Address"
|
|
},
|
|
"HTML": {
|
|
"description": "Message body HTML",
|
|
"type": "string"
|
|
},
|
|
"ID": {
|
|
"description": "Database ID",
|
|
"type": "string"
|
|
},
|
|
"Inline": {
|
|
"description": "Inline message attachments",
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/Attachment"
|
|
}
|
|
},
|
|
"MessageID": {
|
|
"description": "Message ID",
|
|
"type": "string"
|
|
},
|
|
"Read": {
|
|
"description": "Read status",
|
|
"type": "boolean"
|
|
},
|
|
"ReplyTo": {
|
|
"description": "ReplyTo addresses",
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/Address"
|
|
}
|
|
},
|
|
"ReturnPath": {
|
|
"description": "Return-Path",
|
|
"type": "string"
|
|
},
|
|
"Size": {
|
|
"description": "Message size in bytes",
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"Subject": {
|
|
"description": "Message subject",
|
|
"type": "string"
|
|
},
|
|
"Tags": {
|
|
"description": "Message tags",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"Text": {
|
|
"description": "Message body text",
|
|
"type": "string"
|
|
},
|
|
"To": {
|
|
"description": "To addresses",
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/Address"
|
|
}
|
|
}
|
|
},
|
|
"x-go-package": "github.com/axllent/mailpit/storage"
|
|
},
|
|
"MessageHeaders": {
|
|
"description": "Message headers",
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"x-go-name": "messageHeaders",
|
|
"x-go-package": "github.com/axllent/mailpit/server/apiv1"
|
|
},
|
|
"MessageSummary": {
|
|
"description": "MessageSummary struct for frontend messages",
|
|
"type": "object",
|
|
"properties": {
|
|
"Attachments": {
|
|
"description": "Whether the message has any attachments",
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"Bcc": {
|
|
"description": "Bcc addresses",
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/Address"
|
|
}
|
|
},
|
|
"Cc": {
|
|
"description": "Cc addresses",
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/Address"
|
|
}
|
|
},
|
|
"Created": {
|
|
"description": "Created time",
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"From": {
|
|
"$ref": "#/definitions/Address"
|
|
},
|
|
"ID": {
|
|
"description": "Database ID",
|
|
"type": "string"
|
|
},
|
|
"MessageID": {
|
|
"description": "Message ID",
|
|
"type": "string"
|
|
},
|
|
"Read": {
|
|
"description": "Read status",
|
|
"type": "boolean"
|
|
},
|
|
"Size": {
|
|
"description": "Message size in bytes (total)",
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"Subject": {
|
|
"description": "Email subject",
|
|
"type": "string"
|
|
},
|
|
"Tags": {
|
|
"description": "Message tags",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"To": {
|
|
"description": "To address",
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/Address"
|
|
}
|
|
}
|
|
},
|
|
"x-go-package": "github.com/axllent/mailpit/storage"
|
|
},
|
|
"MessagesSummary": {
|
|
"description": "MessagesSummary is a summary of a list of messages",
|
|
"type": "object",
|
|
"properties": {
|
|
"messages": {
|
|
"description": "Messages summary\nin:body",
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/MessageSummary"
|
|
},
|
|
"x-go-name": "Messages"
|
|
},
|
|
"messages_count": {
|
|
"description": "Total number of messages matching current query",
|
|
"type": "integer",
|
|
"format": "int64",
|
|
"x-go-name": "MessagesCount"
|
|
},
|
|
"start": {
|
|
"description": "Pagination offset",
|
|
"type": "integer",
|
|
"format": "int64",
|
|
"x-go-name": "Start"
|
|
},
|
|
"tags": {
|
|
"description": "All current tags",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"x-go-name": "Tags"
|
|
},
|
|
"total": {
|
|
"description": "Total number of messages in mailbox",
|
|
"type": "integer",
|
|
"format": "int64",
|
|
"x-go-name": "Total"
|
|
},
|
|
"unread": {
|
|
"description": "Total number of unread messages in mailbox",
|
|
"type": "integer",
|
|
"format": "int64",
|
|
"x-go-name": "Unread"
|
|
}
|
|
},
|
|
"x-go-package": "github.com/axllent/mailpit/server/apiv1"
|
|
},
|
|
"ReleaseMessageRequest": {
|
|
"description": "Release request",
|
|
"type": "object",
|
|
"properties": {
|
|
"to": {
|
|
"description": "To\nin:body",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"x-go-name": "To"
|
|
}
|
|
},
|
|
"x-go-name": "releaseMessageRequest",
|
|
"x-go-package": "github.com/axllent/mailpit/server/apiv1"
|
|
},
|
|
"SetReadStatusRequest": {
|
|
"description": "Set read status request",
|
|
"type": "object",
|
|
"properties": {
|
|
"ids": {
|
|
"description": "ids\nin:body",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"x-go-name": "IDs"
|
|
},
|
|
"read": {
|
|
"description": "Read status",
|
|
"type": "boolean",
|
|
"x-go-name": "Read"
|
|
}
|
|
},
|
|
"x-go-name": "setReadStatusRequest",
|
|
"x-go-package": "github.com/axllent/mailpit/server/apiv1"
|
|
},
|
|
"SetTagsRequest": {
|
|
"description": "Set tags request",
|
|
"type": "object",
|
|
"properties": {
|
|
"ids": {
|
|
"description": "IDs\nin:body",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"x-go-name": "IDs"
|
|
},
|
|
"tags": {
|
|
"description": "Tags\nin:body",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"x-go-name": "Tags"
|
|
}
|
|
},
|
|
"x-go-name": "setTagsRequest",
|
|
"x-go-package": "github.com/axllent/mailpit/server/apiv1"
|
|
},
|
|
"WebUIConfiguration": {
|
|
"description": "Response includes global web UI settings",
|
|
"type": "object",
|
|
"properties": {
|
|
"DisableHTMLCheck": {
|
|
"description": "Whether the HTML check has been globally disabled",
|
|
"type": "boolean"
|
|
},
|
|
"MessageRelay": {
|
|
"description": "Message Relay information",
|
|
"type": "object",
|
|
"properties": {
|
|
"Enabled": {
|
|
"description": "Whether message relaying (release) is enabled",
|
|
"type": "boolean"
|
|
},
|
|
"RecipientAllowlist": {
|
|
"description": "Allowlist of accepted recipients",
|
|
"type": "string"
|
|
},
|
|
"ReturnPath": {
|
|
"description": "Enforced Return-Path (if set) for relay bounces",
|
|
"type": "string"
|
|
},
|
|
"SMTPServer": {
|
|
"description": "The configured SMTP server address",
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"x-go-name": "webUIConfiguration",
|
|
"x-go-package": "github.com/axllent/mailpit/server/apiv1"
|
|
}
|
|
},
|
|
"responses": {
|
|
"BinaryResponse": {
|
|
"description": "Binary data response inherits the attachment's content type"
|
|
},
|
|
"ErrorResponse": {
|
|
"description": "Error response"
|
|
},
|
|
"InfoResponse": {
|
|
"description": "Application information",
|
|
"schema": {
|
|
"$ref": "#/definitions/AppInformation"
|
|
},
|
|
"headers": {
|
|
"Body": {
|
|
"description": "Application information"
|
|
}
|
|
}
|
|
},
|
|
"MessagesSummaryResponse": {
|
|
"description": "Message summary",
|
|
"schema": {
|
|
"$ref": "#/definitions/MessagesSummary"
|
|
}
|
|
},
|
|
"OKResponse": {
|
|
"description": "Plain text \"ok\" response"
|
|
},
|
|
"TextResponse": {
|
|
"description": "Plain text response"
|
|
},
|
|
"WebUIConfigurationResponse": {
|
|
"description": "Web UI configuration",
|
|
"schema": {
|
|
"$ref": "#/definitions/WebUIConfiguration"
|
|
},
|
|
"headers": {
|
|
"Body": {
|
|
"description": "Web UI configuration settings"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |