DevelopersGuide
Zimlet Development Guide
This page contains a list with links to all developer guides for Zimbra 10 / Modern UI. These guides are here for your reference but you can also follow them as a self-paced course.
You are free to follow these guides in any order you wish, but guide #2 and #3 are basically Preact Zimlet 101. So if you have trouble understanding guides #4 and higher, please take a look at #2 and #3 first as we are building up the complexity of the guides gradually.
Update: When packaging your Zimlet the file /src/intl/en_US.json needs to be formatted like the example below, some of the guide Zimlets have not yet been updated to include this.
{ "zimbra-zimlet-custom-mark": { "title": "Custom Mark" }, "zimlet": { "description": "Custom Mark", "label": "Custom Mark" } }}
1 | Practical guide to writing Zimbra back-end extensions (Java). | https://github.com/Zimbra/zm-extension-guide |
2 | Practical guide to writing Preact Zimlets for Zimbra Modern UI. Shows how to add a new tab with an iFrame in Zimbra and how to use the more-menu to do something with currently viewed email. Including getting started with Zimlet-CLI. | https://github.com/Zimbra/zm-zimlet-guide |
3 | How to use internationalization and custom metadata to create a Sticky Notes Zimlet. | https://github.com/Zimbra/zimbra-zimlet-sticky-notes |
4 | How to write a Zimlet that allows a user to attach files from a third party service. This way users can attach files from any service you wish to integrate directly from Zimbra. | https://github.com/Zimbra/zimbra-zimlet-attacher |
5 | Create, modify and remove tags in Zimbra, add and remove tags from emails and contacts. How to use GraphQL and Apollo Client from a Zimlet. | https://github.com/Zimbra/zimbra-zimlet-tags |
6 | A Zimlet that can set the Location and Notes fields on a new appointment. Can be used for integrating 3rd party video conferencing solutions in Zimbra. | https://github.com/Zimbra/zimbra-zimlet-appointment |
7 | How to write a Zimlet that can be configured by the administrator. | https://github.com/Zimbra/zimbra-zimlet-configuration |
8 | Fully functional Zimlet that brings email template functionality to Zimbra 9. Learn how to write Zimlets to interact with the email composer. (get/set subject and body of new email) | https://github.com/Zimbra/zimbra-zimlet-email-templates |
9 | Fully functional Zimlet. Use Voice Message Zimlet to record a message from Zimbra. | https://github.com/Zimbra/zimbra-zimlet-voice-message |
10 | Guide on interacting with Zimbra Composer using Zimlets. Signature Template example Zimlet. An alternative to guide 8. | https://github.com/Zimbra/zimbra-zimlet-signature-template |
11 | A guide on using Zimlet User Properties to store per-user Zimlet settings. Demos the use of GraphQL mutations. | https://github.com/Zimbra/zimbra-zimlet-user-properties |
12 | How to add an onkeyup event to the Zimbra Composer, interact with the composer while the user is typing. | https://github.com/Zimbra/zimbra-zimlet-social-justice |
13 | The X-Spam Zimlet displays X-Spam headers in the UI. Introduces @zimbra/api-client a GraphQL client for making SOAP API requests. | https://github.com/Zimbra/zimbra-zimlet-xspam |
14 | The Google Translate Zimlet shows you how to deal with a specific message in conversation view mode of Zimbra. | https://github.com/Zimbra/zimbra-zimlet-google-translate |
15 | Create a Milter extension for Zimbra. Add or replace email headers, filter out specific email content. Automatically add BCC recipients, add disclaimers, etc. | https://github.com/Zimbra/custom-milter |
16 | Zimlet Events when the user logs-out or sends an email | https://github.com/Zimbra/zimlet-cli/wiki/Capture-Zimbra-events-inside-a-Zimlet |
17 | A Zimlet that alerts you when forgetting to attach an attachment when sending an email. (Implementation of guide 16) | https://github.com/Zimbra/zimbra-zimlet-attachment-alert |
18 | Empty subject Zimlet, alerts you when sending an email without subject. Introducing a new way to create a modal dialog and also introduces the use of Event Handlers using useCallback to improve performance. | https://github.com/Zimbra/zimbra-zimlet-emptysubject |
19 | Implement a CSRF token check in a Zimbra extension. | https://github.com/Zimbra/zm-extension-guide/blob/master/Implementing%20a%20CSRF%20check%20on%20a%20Zimbra%20extension.md |
20 | How to implement Custom Authentication using a Zimbra extension | https://github.com/Zimbra/zimbra-custom-authentication |
21 | How to use DOMPurify in your Zimlet for XSS sanitizing | https://github.com/Zimbra/zimlet-cli/wiki/XSS-Sanitizing |
22 | Admin Console Zimlets and extensions guide | https://github.com/Zimbra/admin-console-zimlets-and-extensions-guide |
23 | Setting email headers from Zimlets using the ONSEND event and Redux | https://github.com/Zimbra/zimbra-zimlet-send-header |
1 | Zimlet that shows how to set the default cloudapp, can be modified for setting default Chat/Cloud vertical. | https://github.com/Zimbra/zimbra-zimlet-apps-redirect |
2 | Integrate 3rd party web-apps in Zimbra with the AnyFrame Zimlet. No coding needed, add a frame as a tab. | https://github.com/Zimbra/zimbra-zimlet-anyframe |
See also: https://wiki.zimbra.com/wiki/ModernUI-Zimlets you can also search Zimbra's Github for all open-source Modern Zimlets via https://github.com/orgs/Zimbra/repositories?q=%22zimbra-zimlet%22
Zimlet Zimlets ModernUI React Preact Zimlet-CLI ZimletCLI