...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
To access this resource and use the methods, you must have a SMTP+ user enabled. Usename and password must be included in each request.
SendMessage
...
...
Getting started
This API provides web services for accessing to the same features that are available with SMTP+ v2. Also the performances, the aggregation policies and the usage restrictions (i.e. do not use it for promotional emails) are exactly the same as SMTP+ v2.
The parameters that are specified with message headers in SMTP+ v2 are here handled as fields of an object that is passed to the web services. For more details about these parameters please check out the examples that are provided for SMTP+ v2
Best Practices
- Avoid aggregation types that create several dozens of messages per day in your admin console. CampaignCode field is a great way to aggregate messages in order to reduce created messages and, at the same time obtain meaningful statistics. If you don't specify the CampaignCode value, the default value for the SMTP+ user applies (this value is set in the admin console)
- Always check returned value. Since most of the returned errors code are due to bad input parameters, any retry attempt will fail when returned code is HTTP 403.
Warnings
If you are using a trial or a developer account only a few messages can be sent, while for paying accounts such volume restrictions do not apply. In any case, delivery throughput cannot exceed the speed that you purchased for your account.
If you change the password of your SMTP+ account, then any application based on it, API included, will stop working.
Do not rely too much on the "Priority" field, many restrictions apply on it because its value is properly handled only at a specific stage of message workflow, there is no way to guarantee that the order based on priority value is kept at all delivery stages.
Please be aware that, as with SMTP relay, methods that are used to send emails are asynchronous, hence a successful return code means that request is correct and it has been added to a queue, but it does not guarantee the message delivery (e.g. queueing and processing was ok but specified recipient is unreachable or unsubscribed)
...
Authentication
To access resources and to use the methods, you must have an active account with an enabled SMTP+ user (SMTP+ users have the "sNNNNN_NN" format). Usename and password must be included in each request through "User" parameter .
No Format |
---|
"User":{"Username":"YourSmtpPlusUsername","Secret":"YourSmtpPlusPassword"} |
An error may be returned when SMTP+ user is blocked, in this case you could use "ListUserInfo" method to get more details.
...
Resources
Messages
This section includes the methods that can be used to send transactional emails. Use "SendMessage" when you need to specify a completely different content for each message, while you can use "SendTemplate" and specify merge tags if you want to pick the body of an existing content and simply customize some of its parts. Each of these two method provides the same level of performances, you can freely use the one that better fits your needs in terms of data to be passed to the method.
SendMessage
Description | This method allows sending of a message to multiple recipients, the message content is passed as input in with HTML code or plain text. The message may also include attachments and embedded images. |
---|
HTTP Method | POST |
---|
URL | https://send.mailup.com/API/v2.0/messages/sendmessage
|
---|
Reference | Expand |
---|
title | Click here to learn more about request parameters |
---|
| The method takes as input the document JSON or XML that has the structure MessageDTO defined in the tables below. MessageDTO |
---|
Parameter | Type | Description |
---|
Subject | String | the subject of the message | Html | HtmlDTO | the HTML part of the message (specify only the HTML inside the body tag) | Text | String | the plain text part of the message | From | EmailAddressDTO | the sender | To | List<EmailAddressDTO> | the list of recipients in To header | Cc | List<EmailAddressDTO> | the list of recipients in Cc header | Bcc | List<EmailAddressDTO> | the list of recipients in Bcc | ReplyTo | String | The email address to be added into Reply-To header value | CharSet | String | The charset of the message body | ExtendedHeaders | List<NameValueDTO> | List of extended custom headers (only configured SMTP custom headers SMTP headers that are approved by MailUp will be sentadded) | Attachments | List<MessagePartDTO> | List of attachments | EmbeddedImages | List<MessagePartDTO> | list of embedded images | XSmtpAPI | XSmtpAPIDTO | the X-SMTPAPI header value, used for custom aggregations and configurations | User | SmtpUserDTO | the SMTP+ user credentials |
HtmlDTO |
---|
Parameter | Type | Description |
---|
DocType | String | The DOCTYPE directive | Head | String | The head content | Body | String | The body content | BodyTag | String | the body tag, default is "< body>" |
EmailAddressDTO |
---|
Parameter | Type | Description |
---|
Name | String | the name | Email | String | the email address |
NameValueDTO |
---|
Parameter | Type | Description |
---|
N | String | the name of the parameter | V | String | the value of the parameter |
MessagePartDTO |
---|
Parameter | Type | Description |
---|
Filename | String | the file name | ContentId | String | the Content-Id value | Body | Array of Byte | the array of byte of the content |
XSmtpAPIDTO |
---|
Parameter | Type | Description |
---|
CampaignName | String | The name used for the aggregated campaign | CampaignCode | String | The campaign code which determines the aggregation | Header | Boolean | Add or not the MailUp header to the message | Footer | Boolean | Add or not the MailUp footer to the message | ClickTracking | Boolean | Use the click tracking | ViewTracking | Boolean | Use the view tracking | Priority | Integer | Set the priority of the message (1 high - 5 low ) | Schedule | DateTime | Schedule date and time of the message | DynamicFields | List<NameValueDTO> | List of merge tags and dynamic field of the recipient | CampaignReport | String | Name of the aggregated campaign report | SkipDynamicFields | Boolean | skip merge tags evaluation |
SmtpUserDTO |
---|
Parameter | Type | Description |
---|
Username | String | the username | Secret | String | the password |
|
Expand |
---|
title | Click here to learn more about response parameters |
---|
|
SendResponseDTO |
---|
Parameter | Type | Description |
---|
Status | String | the status of the response can be "done" or "error" | Code | String | the result code (see the Error Code table) | Message | String | the result message |
|
|
---|
JSON request (example) | Expand |
---|
{ "Html": { "DocType":null, "Head":null, "Body":"<div>Hello Mr. [firstname] [lastname] !!!</div><br><img width=\"600\" height=\"397\" src=\"cid:img001\">", "BodyTag":"<body>" }, "Text":"Hello world!!!", "Subject":"Hello friend!", "From":{"Name":"Test User","Email":"test@mailup.it"}, "To":[{"Name":"Massimo","Email":"info@mailup.it"}], "Cc":[], "Bcc":[], "ReplyTo":null, "CharSet":"utf-8", "ExtendedHeaders":null, "Attachments":null, "EmbeddedImages": [ { "Filename":"Image.jpg", "ContentId":"img001", "Body":"..." } ], "XSmtpAPI": { "CampaignName":"Test Campaign", "CampaignCode":"1001", "Header":null, "Footer":null, "ClickTracking":null, "ViewTracking":null, "Priority":null, "Schedule":null, "DynamicFields":[{"N":"firstname","V":"Mario"},{"N":"lastname","V":"Rossi"}], "CampaignReport":null, "SkipDynamicFields":null }, "User":{"Username":"sNNNNN_NN","Secret":"..."} } |
|
---|
JSON response (example) | Example of a successful response: { "Status":"done", "Code":"0", "Message":"Ok" } Example of error: { "Status":"error", "Code":"102", "Message":"The operation is not authorized." } |
---|
...
SendTemplate
Description | The This method allows the sending of a message to multiple recipients, the message content (both HTML body and plain text) is obtained from a template by specifying the ID of a MailUp message that stored in the MailUp administration admin console. The message may also include attachments and embedded images. |
---|
HTTP Method | POST |
---|
URL | https://send.mailup.com/API/v2.0/messages/sendtemplate |
---|
Reference | Expand |
---|
title | Click here to learn more about request parameters |
---|
|
TemplateDTO |
---|
Parameter | Type | Description |
---|
Subject | String | the subject of the message | TemplateId | Integerthe | Id of the templateID of the MailUp message whose content has to be used. Only messages that belong to the same list of SMTP+ user can be accepted | From | EmailAddressDTO | the senderSender (both name and email) | To | List<EmailAddressDTO> | the list of recipients in To header | Cc | List<EmailAddressDTO> | the list of recipients in Cc header | Bcc | List<EmailAddressDTO> | the list of recipients in Bcc | ReplyTo | String | The email address to be added into Reply-To header value | CharSet | String | The charset of the message body | ExtendedHeaders | List<NameValueDTO> | List of extended custom headers (only configured SMTP custom headers that are approved by MailUp will be sentadded) | Attachments | List<MessagePartDTO> | List of attachments | EmbeddedImages | List<MessagePartDTO> | list of embedded images | XSmtpAPI | XSmtpAPIDTO | the X-SMTPAPI header value, used for custom aggregations and configurations | User | SmtpUserDTO | the SMTP+ user credentials |
See the SendMessage reference for reading the definition of the others DTO DTOs (EmailAddressDTO, NameValueDTO, ...) |
Expand |
---|
title | Click here to learn more about response parameters |
---|
|
SendResponseDTO |
---|
Parameter | Type | Description |
---|
Status | String | the status of the response can be "done" or "error" | Code | String | the result code (see the Error Code table) | Message | String | the result message |
|
|
---|
JSON request (example) | Expand |
---|
{ "TemplateId":694, "Subject":"Test message from template", "From":{"Name":"Test User","Email":"test@mailuptest@example.itcom"}, "To":[{"Name":"MassimoMax","Email":"info@mailupinfo@example.itcom"}], "Cc":[], "Bcc":[], "ReplyTo":null, "CharSet":"utf-8", "ExtendedHeaders":null, "Attachments":null, "EmbeddedImages":null, "XSmtpAPI":null, "User":{"Username":"sNNNNN_NN","Secret":"..."} } |
|
---|
JSON response (example) | Example of a successful response: { "Status":"done", "Code":"0", "Message":"Ok" } Example of error: { "Status":"error", "Code":"111", "Message":"The template is not found." } |
---|
Users
...
Users
Use ListUserInfo to retrieve status details about current SMTP+ user or other SMTP+ users that belong to the same MailUp list of a specified account
ListUserInfo
Description | The This method provides returns the list of SMTP+ users associated to the distribution MailUp list of caller.a specified account. Also the status details of each account are provided |
---|
HTTP Method | POST |
---|
URL | https://send.mailup.com/API/v2.0/users/listuserinfo |
---|
Reference | Expand |
---|
title | Click here to learn more about request parameters |
---|
| The request must contain the user's credentials and an optional username to query ListUsersDTO |
---|
Parameter | Type | Description |
---|
User | SMTPUserDTO | the calling User | Username | String | optional User from which to read the profile, if omitted the method returns the whole list of users |
See the SendMessage reference for the definition of SMTPUserDTO |
Expand |
---|
title | Click here to learn more about response parameters |
---|
| The response is given by a JSON or XML document that has the structure of a list of users informations ( List<UserInfoDTO>). UserInfoDTO |
---|
Parameter | Type | Description |
---|
Username | SMTPUserDTO | the username | IdConsole | long | the console ID | IdList | long | the list Id | IsEnabled | bool | true if the user is enabled | Priority | int | the priority | Note | string | note | CreationDate | datetime | creation date | UpdateDate | datetime | last update date | DomainList | string | the list of allowed domains | SenderList | string | the list of allowed sender | BlockUntil | datetime | the date until the user is blocked | AdminBlock | bool | true if the user is blocked by the system administrator |
|
|
---|
JSON request (example) | {"User":{"Username":"sNNNN_NN","Secret":"..."},"Username":"sMMMM_MM"} |
---|
JSON response (example) | Example of a successful response: { "Status":"done", "Code":"0", "Message":"Ok", "UserList": [ { "Username":"sMMMM_MM", "IdConsole":123, "IdList":1, "IsEnabled":true, "Priority":3, "Note":"", "CreationDate":"2015-03-31T12:12:04", "UpdateDate":"2015-03-31T12:12:34", "DomainList":"", "SenderList":"", "BlockUntil":"0001-01-01T00:00:00", "AdminBlock":false } ] } Example of error: { "Status":"error", "Code":"112", "Message":"User is deleted." } |
---|
...
Error
...
codes
This table contains the list of error codes shows possible HTTP response statuses that can be returned by the API methods.
...
...
methods and the corresponding error code provided by the application (inside the response).
HTTP response code | | |
---|
200 | 0 | Ok |
400 | 1 | The operation is failed. |
403 | 101 | The input is null. |
403 | 102 | The operation is not authorized. |
403 | 103 | The user is not enabled. |
403 | 104 | The user is blocked. |
403 | 105 | The user is blocked until this date. |
403 | 106 | The console account is not found. |
403 | 107 | The console account is suspended. |
403 | 108 | The console account is deleted. |
403 | 109 | At least one recipient is required. |
403 | 110 | The sender is mandatory. |
403 | 111 | The template is not found. |
403 | 112 | User is deleted. |