{@int newsletterNumber}
{@java.time.LocalDate date}
{@java.util.List<eu.mulk.mulkcms2.benki.bookmarks.Bookmark> bookmarks}
{@java.util.List<eu.mulk.mulkcms2.benki.lazychat.LazychatMessage> lazychatMessages}
{@java.lang.String unsubscribeUri}
New Blog Posts
==============

{#for post in lazychatMessages}
* {post.date.humanDate}  <https://matthias.benkard.de/posts/{post.id}>
{post.text.content}


{/for}


New Bookmarks
=============

{#for post in bookmarks}
* {post.date.humanDate}  <https://matthias.benkard.de/posts/{post.id}>
{#if post.via}
* Via: <{post.via}>
{/if}
* {post.title}
* <{post.uri}>

{post.text.description}


{/for}



Your Subscription
=================

You are receiving this email because you are subscribed to the MulkCMS
newsletter.  To unsubscribe, send an email to:

  <mulkcms+unsubscribe@mail.benkard.de>
