Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Beskrivning

Möjlighet att skicka mail till en medborgares eller ett företags digitala brevlåda.

För tillfället stödjs enbart Kivra, men detta kommer att utökas till Min myndighetspost samt Eboks.

Digimail kommer inte stödjas pga: “Digimail har sagt upp anslutningsavtalet för Mina meddelanden. Det innebär att det från den 1 juni 2022 inte längre är möjligt att ta emot digital post från offentliga aktörer i Digimail” - digg.se

Användning av tjänsten

Denna tjänst har en del riktliner för hur meddelanden bör utformas och hur stora bilagor som kan bifogas:

Utforming 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.

  • Varje meddelande måste ha ett icke-tomt meddelande (body), utöver eventuell bilaga, som kan vara antingen av typen text/plain eller text/html.

Bilagor

  • Det går att skicka med 0 → n bilagor till ett meddelande. För tillfället stödjer vi enbart pdf-bilagor.

  • Bilagorna måste base64-encodas, ingen kontroll görs på deras “korrekthet” så detta är upp till avsändaren att säkerställa.

    • Tänk på att base64-encodning lägger på ~33% till storleken av pdf:en.

  • Samtliga bilagor inklusive meddelandet måste vara under 2MB i storlek annars nekar tjänsten utskicket.

    • Max-storleken beräknas på hela meddelandet som skickas så om det är exakt 2MB kommer det att nekas pga. den overhead som SOAP-meddelandet lägger på.

Livscykelstatus

Under utvecklingProduktion

Lösningsbeskrivning

Gliffy
imageAttachmentIdatt975798291
macroId3aec7bee-a29e-4a2e-a8c2-e3c2e70b79f0
baseUrlhttps://sundsvall.atlassian.net/wiki
namedigital-mail-sender-gliffy
diagramAttachmentIdatt976420878
containerId892960792
timestamp1648563694238

Hantering av personuppgifter

I fallet där ett digitalt mail skall skickas till en medborgare hämtas personnummer via CitizenMapping då personnummer är tvingande för att få reda på vilken bredvlåda medborgaren har.

API specifikation (wip)

Swagger ui
openapi: 3.0.1
info:
  title: api-digitalmailsender
  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:
  /sendDigitalMail:
    post:
      tags:
      - Digital Mail
      operationId: sendDigitalMail
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DigitalMailRequest'
        required: true
      responses:
        "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'
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Problem'
        "200":
          description: Successful Operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DigitalMailResponse'
  /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:
    Attachment:
      required:
      - body
      - contentType
      - filename
      type: object
      properties:
        contentType:
          type: string
          description: "Allowed type is: application/pdf"
          example: APPLICATION_PDF
          enum:
          - application/pdf
        body:
          type: string
          description: Base64-encoded body
        filename:
          type: string
          description: The name of the file
          example: sample.pdf
      description: "An attachment, e.g. pdf, docx etc."
    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/html
          enum:
          - text/plain
          - text/html
        body:
          type: string
          description: "Base64 encoded representation of the message, must be UTF-8\
            \ encoded."
          example: PCFET0NUWVBFIGh0bWw+PGh0bWwgbGFuZz0iZW4iPjxoZWFkPjxtZXRhIGNoYXJzZXQ9InV0Zi04Ij48dGl0bGU+VGVzdDwvdGl0bGU+PC9oZWFkPjxib2R5PjxwPkhlbGxvPC9wPjwvYm9keT48L2h0bWw+
      description: "The body of the message, base64 encoded"
    DigitalMailRequest:
      required:
      - bodyInformation
      - headerSubject
      - municipalityId
      - partyId
      - supportInfo
      type: object
      properties:
        partyId:
          type: string
          description: partyId for the person or organization the digital mail should
            be sent to
          example: 6a5c3d04-412d-11ec-973a-0242ac130003
        municipalityId:
          type: string
          description: MunicipalityId
          example: "2281"
        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'
    SupportInfo:
      required:
      - contactInformationEmail
      - contactInformationPhoneNumber
      - contactInformationUrl
      - 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: "4660191000"
        contactInformationEmail:
          type: string
          description: Email address the recipient may use to get in contact with
            the sender.
          example: sundsvalls.kommun@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
        status:
          $ref: '#/components/schemas/StatusType'
        title:
          type: string
        detail:
          type: string
    StatusType:
      type: object
      properties:
        reasonPhrase:
          type: string
        statusCode:
          type: integer
          format: int32
    DeliveryStatus:
      type: object
      properties:
        delivered:
          type: boolean
        partyId:
          type: string
        transactionId:
          type: string
    DigitalMailResponse:
      type: object
      properties:
        deliveryStatus:
          $ref: '#/components/schemas/DeliveryStatus'
  securitySchemes: {}

Säkerhetsklassning

Säkerhetsklass <0, 1, 2, 3, 4>

Autentiseringsmetod: Oauth2

(Ref: Säkerhetsklassning av APIer )

API-ägare

TBD

Teknisk ägare

API-Teamet

För tekniska frågor:
teamdynasty@sundsvall.se

Länkar

  • Test

  • Sandbox

  • Produktion

    FAQ

    Exempel