Versions Compared
Key
- This line was added.
- This line was removed.
- Formatting was changed.
Beskrivning
Möjlighet att skicka enkla eller säkra (WIP) mail till en medborgares eller ett företags digitala brevlåda.
Via “enkla” mail går det endast att skicka text eller html.
“Säkra” mail har samma möjlighet som “enkla” mail men där går det även att bifoga filer, t.ex. pdf.
Livscykelstatus
Under utveckling, samt digitala fakturor till en medborgares Kivra-brevlåda.
Brevlådeoperatörer som stöds för mail: Kivra, Min Myndighetspost, Fortnox och Billo
Borttagna brevlådeoperatörer: e-boks, Digimail
Användning av tjänsten
Det finns vissa riktlinjer för hur meddelanden bör utformas och hur stora bilagor som kan bifogas:
Allmänt
Bilagor
För tillfället stödjer tjänsten endast PDF-bilagor.
Bilagorna måste BASE64-encode:as. Ingen kontroll görs på deras “korrekthet” så detta är upp till avsändaren att säkerställa.
Tänk på att BASE64-encoding lägger på ~33% till storleken av PDF-filen.
Digitala mail
Utformning av meddelanden
Ett komplett meddelande får vara max 2 MB, inklusive bilagor och meddelande. Tjänsten gör en kontroll på detta och kommer att ge ett felmeddelande om det är för stort. Anledningen är helt enkelt att inte alla brevlådeoperatörer stödjer större meddelanden och att en leverans därför inte kan garanteras.
Varje meddelande måste ha ett icke-tomt meddelande (body), utöver eventuell bilaga, som kan vara antingen HTML (
text/html
) eller text (text/plain
):HTML-meddelanden går att styla och https://www.digg.se/digital-post/offentlig-aktor/teknisk-beskrivning-av-digital-post/utforma-meddelanden beskriver bäst hur dessa meddelanden bör utformas.
I princip går det att skicka vad man vill men tjänsten gör alltid en HTML-validering och om denna inte går igenom kommer tjänsten att neka meddelandet. Det går även att BASE64-encode:a bilder och infoga dessa, däremot är det inte tillåtet att länka till bilder på internet. Hela meddelandet/bodyn måste vara BASE64-encode:ad.Text-meddelanden går ej att formatera och lämpar sig bäst för t.ex. en enda mening. Får inte vara BASE64-encode:at.
Bilagor
Det går att skicka med 0 → n bilagor till ett meddelande.
Samtliga bilagor inklusive meddelandet måste vara under 2MB i storlek. Om inte nekar tjänsten utskicket.
Maxstorleken beräknas på hela meddelandet som skickas så om bilagan/bilagorna är exakt 2MB kommer det att nekas p.g.a. den overhead som SOAP-meddelandet lägger på.
Digitala fakturor
Utformning av meddelanden
- Tjänsten kommer att verifiera att mottagande kontonummer är ett korrekt Plus- eller Bankgironummer och nekar fakturautskicket om så inte är fallet.
Bilagor
- Minst en bilaga måste skickas med
- Det finns ingen begränsning på bilagors storlek.
Livscykelstatus
Produktion
Lösningsbeskrivning
Gliffy | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Hantering av personuppgifter
I fallet där ett digitalt mail eller en faktura skall skickas till en medborgare hämtas personnummer via CitizenMapping Party då personnummer är tvingande för att få reda på vilken bredvlåda brevlåda medborgaren har.
API specifikation (wip)
swaggeropen-ui |
---|
openapi: 3.0.1
info:
title: digital-mail
contact: {}
license:
name: MIT License
url: https://opensource.org/licenses/MIT
version: "1.0"
servers:
- url: http://nowhere-for-now:8740
tags:
- name: Digital Mail
paths:
/sendSimpleDigitalMail/{partyId}:
post:
tags:
- Digital Mail
operationId: sendSimpleDigitalMail
parameters:
- name: partyId
in: path
required: true
schema:
type: string
description: partyId
example: 6a5c3d04-412d-11ec-973a-0242ac130003
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SendDigitalMailRequest'
required: true
responses:
"400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Problem'
"404":
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Problem'
"200":
description: Successful Operation
content:
application/json:
schema:
$ref: '#/components/schemas/DigitalMailResponse'
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/Problem'
/sendSecureDigitalMail/{partyId}:
post:
tags:
- Digital Mail
operationId: sendSecureDigitalMail
parameters:
- name: partyId
in: path
required: true
schema:
type: string
description: partyId
example: 6a5c3d04-412d-11ec-973a-0242ac130003
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SecureDigitalMailRequest'
required: true
responses:
"400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Problem'
"404":
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Problem'
"500":
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/Problem'
"200":
description: Successful Operation
content:
application/json:
schema:
$ref: '#/components/schemas/SecureDigitalMailResponse'
/api-docs:
get:
tags:
- API
summary: OpenAPI
operationId: getApiDocs
responses:
"200":
description: OK
content:
application/yaml:
schema:
type: string
x-auth-type: None
x-throttling-tier: Unlimited
x-wso2-mutual-ssl: Optional
components:
schemas:
BodyInformation:
required:
- body
- contentType
type: object
properties:
contentType:
type: string
description: "The content type for the message, text/plain for only text,\
\ text/html for html messages."
example: TEXT_PLAIN
enum:
- text/plain
- text/html
body:
type: string
description: "Base64 encoded representation of the message, must be UTF-8\
\ encoded."
example: PG5hdj4KICA8dWw+Cgk8bGk+PGEgaHJlZj0iaHR0cDovL2dvb2dsZS5jb20iIHRpdGxlPSJMb3J1bSBpcHN1bSBkb2xvciBzaXQgYW1ldCI+TG9yZW08L2E+PC9saT4KCTxsaT48YSBocmVmPSIjbm93aGVyZSIgdGl0bGU9IkFsaXF1YW0gdGluY2lkdW50IG1hdXJpcyBldSByaXN1cyI+QWxpcXVhbTwvYT48L2xpPgoJPGxpPjxhIGhyZWY9IiNub3doZXJlIiB0aXRsZT0iTW9yYmkgaW4gc2VtIHF1aXMgZHVpIHBsYWNlcmF0IG9ybmFyZSI+TW9yYmk8L2E+PC9saT4KCTxsaT48YSBocmVmPSIjbm93aGVyZSIgdGl0bGU9IlByYWVzZW50IGRhcGlidXMsIG5lcXVlIGlkIGN1cnN1cyBmYXVjaWJ1cyI+UHJhZXNlbnQ8L2E+PC9saT4KCTxsaT48YSBocmVmPSIjbm93aGVyZSIgdGl0bGU9IlBlbGxlbnRlc3F1ZSBmZXJtZW50dW0gZG9sb3IiPlBlbGxlbnRlc3F1ZTwvYT48L2xpPgogIDwvdWw+CjwvbmF2Pg==
description: "The body of the message, base64 encoded"
EmailNotification:
required:
- from
type: object
properties:
from:
type: string
description: Who the digital mail is from
example: someone@sundsvall.se
subject:
maxLength: 254
minLength: 0
type: string
description: Title for notification email
example: Du har ett nytt meddelande i Kivra
text:
type: string
description: Notification message in the email
example: Du har ett nytt meddelande i Kivra
description: Email notification details
Notification:
type: object
properties:
emailNotification:
$ref: '#/components/schemas/EmailNotification'
smsNotification:
$ref: '#/components/schemas/SmsNotification'
description: Setting for notifying the recipient via via sms and/or email.
SendDigitalMailRequest:
required:
- bodyInformation
- headerSubject
- municipalityId
- supportInfo
type: object
properties:
municipalityId:
type: string
description: MunicipalityId
example: SK
headerSubject:
type: string
description: The subject of the digital mail.
example: Viktig information från Sundsvalls kommun
supportInfo:
$ref: '#/components/schemas/SupportInfo'
bodyInformation:
$ref: '#/components/schemas/BodyInformation'
notification:
$ref: '#/components/schemas/Notification'
description: Digital mail request
SmsNotification:
type: object
properties:
from:
maxLength: 11
minLength: 0
type: string
description: Number for notification
example: "46701234567"
text:
maxLength: 160
minLength: 0
type: string
description: Notification message in the sms
example: Du har ett nytt meddelande i Kivra
description: Sms notification details
SupportInfo:
required:
- supportText
type: object
properties:
supportText:
type: string
description: Information text describing the different ways the recipient
may contact the sender.
example: Kontakta oss via epost eller telefon.
contactInformationUrl:
type: string
description: Url where the recipient may find more information.
example: https://sundsvall.se/
contactInformationPhoneNumber:
type: string
description: Phone number the recipient may call to get in contact with
the sender.
example: "46701234567"
contactInformationEmail:
type: string
description: Email address the recipient may use to get in contact with
the sender.
example: someone@sundsvall.se
description: Contains contact information and where the recipient may turn to
for questions.
Problem:
type: object
properties:
instance:
type: string
format: uri
type:
type: string
format: uri
parameters:
type: object
additionalProperties:
type: object
title:
type: string
detail:
type: string
status:
$ref: '#/components/schemas/StatusType'
StatusType:
type: object
properties:
reasonPhrase:
type: string
statusCode:
type: integer
format: int32
DigitalMailResponse:
type: object
properties:
distributionId:
type: string
Attachment:
required:
- body
- contentType
- filename
type: object
properties:
contentType:
type: string
description: content type
body:
type: string
description: Base64-encoded body
filename:
type: string
description: The name of the file
description: "An attachment, e.g. pdf, docx etc."
SecureDigitalMailRequest:
required:
- bodyInformation
- headerSubject
- municipalityId
- supportInfo
type: object
properties:
municipalityId:
type: string
description: MunicipalityId
example: SK
headerSubject:
type: string
description: The subject of the digital mail.
example: Viktig information från Sundsvalls kommun
supportInfo:
$ref: '#/components/schemas/SupportInfo'
attachments:
type: array
items:
$ref: '#/components/schemas/Attachment'
bodyInformation:
$ref: '#/components/schemas/BodyInformation'
SecureDigitalMailResponse:
type: object
properties:
distributionId:
type: string
securitySchemes: {}
|
Säkerhetsklassning
Säkerhetsklass <0, 1, 2, 3, 4>
Autentiseringsmetod: Oauth2
(Ref: Säkerhetsklassning av APIer )
API-ägare
TBD
Teknisk ägare
api | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||
Säkerhetsklassning
Säkerhetsklass 1
Autentiseringsmetod: Oauth2
Teknisk ägare
För tekniska frågor:
teamdynasty@sundsvall.se
Länkar
Sandbox
Källkod
https://github.com/OpenSundsvall/api-service-digital-mail-sender