Monthly Archive: August 2022

Sendgrid

Sendgrid is the cause of nightmares, it’s not uncommon that customers use Sendgrid, and it’s quite understandable with a “free tier” that allows you to send e-mails from your application for free.

But what Sendgrid lacks is proper Spam-mitigation, since Sendgrids entry level “free tier” and their first level of payed service uses a shared service platform, this means that it only takes one of Sendgrids customers to misbehave (and they do!) for all other customers using that same tier to be affected, causing e-mails to be blocked by the customers spam-mitigation filters or even worse being blacklisted for extended periods.

The solution in the Sendgrid world, is to upgrade to their highest tier, currently at ~90 USD per month. But why did we get stuck here? Well it was because of the free tier in the beginning, because ~90 USD per month, is quite pricy when alternative services pricing starts around 8 USD per month (depending on volume).

Confluence – Export PDF Template

I spent the good part of a sunday afternoon to play around with the Export to PDF function in Confluence, and this is my finished stylesheet. Inspired by various online sources…

body {
font-family: Arial, sans-serif;
font-size: 12pt !important;
letter-spacing: normal;
}

*|h1 {
font-family: Arial, sans-serif;
font-size: 44pt !important;
letter-spacing: normal;
}

*|h2 {
font-family: Arial, sans-serif;
font-size: 34pt !important;
letter-spacing: normal;
}

*|h3 {
font-family: Arial, sans-serif;
font-size: 24pt !important;
letter-spacing: normal;
}

*|h4 {
font-family: Arial, sans-serif;
font-size: 16pt !important;
letter-spacing: normal;
}

.pagetitle h1 {
font-family: Arial, sans-serif;
font-size: 50pt !important;
margin-left: 0px !important;
padding-top: 150px !important;
page-break-after: always;
}

@page {
size: 210mm 297mm;
margin: 15mm;
margin-top: 20mm;
margin-bottom: 15mm;
padding-top: 15mm;
font-family: Arial, sans-serif;

.pagetitle {
page-break-before: always;
}

@top-right {
background-image: url("wiki/download/attachments/127662/Logotype-Company-Digital-black.png");
background-repeat: no-repeat;
background-size: 80%;
background-position: bottom right;
}

/* Copyright */
@bottom-left {
content: "Company AB";
font-family: Arial, sans-serif;
font-size: 8pt;
vertical-align: middle;
text-align: left;
letter-spacing: normal;
}

/* Page Numbering */
@bottom-center {
content: "Page " counter(page) " of " counter(pages);
font-family: Arial, sans-serif;
font-size: 8pt;
vertical-align: middle;
text-align: center;
letter-spacing: normal;
}
	
/* Information Class */
@bottom-right {
content: "Information Class: Restricted";
font-family: Arial, sans-serif;
font-size: 8pt;
vertical-align: middle;
text-align: right;
letter-spacing: normal;
}

/* Generate border between footer and page content */
border-bottom: 1px solid black;

/* end of @page section */
}

/* Insert page-break at each divider in the page */
hr {  
page-break-after:always;  
visibility: hidden;  
}

/* Fix tables breaking outside the print-area */
table.fixedTableLayout {
    table-layout: fixed !important;
    width: 80% !important;
}

div.wiki-content {
width: 150mm !important;
margin: 0px 10mm 0px 10mm !important;
}

body,div,p,li,td,table,tr,.bodytext,.stepfield  {
font-size: 11pt !important;
letter-spacing: normal;
word-wrap: break-word;
}