Receive updates on new emails with the Zimbra mail server

In the Zimbra mail server, there are blacklists and whitelists that determine whether to block or allow new incoming emails. However, the process of blocking an email this way can be inconvenient. I am interested in creating a plugin for the Zimbra mail server that filters emails into spam and non-spam categories based on a specific list.

The issue I am facing is obtaining information about a new incoming email address, including the email address itself and the header. I have explored tutorials on developing a Zimlet, but they mostly focus on performing actions rather than retrieving information.

Could someone please advise me on how to retrieve this information?

Thank you in advance :-)

Answer №1

Zimlets are designed as extensions for the Web UI, not for this specific purpose. It may be possible to create a server extension instead, though it's unclear if there is an existing extension class for that.

One alternative approach would be to use a "milter," which allows you to integrate with the mail delivery process.

A good example is the "disclaimr"-milter created by the user: https://github.com/dploeger/disclaimr

Within the milter, you can utilize the Zimbra SOAP-API to retrieve objects from the Zimbra server, such as lists.

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

What is the best way to convert minutes into both hours and seconds using javascript?

In order to achieve this functionality, I am trying to implement a pop-up text box where the user can choose either h for hours or s for seconds. Once they make their selection, another pop-up will display the answer. However, I am facing issues with gett ...

Utilizing Audio Record Feature with a pair of buttons - one for initiating recording and the other for concluding recording

I'm new to Vue.js and trying to create a simple audio recorder that starts recording on click of a button and stops when another button is clicked. The goal is to display the audio file in the template and save it locally as a blob. Here is the templ ...

What steps should I take to ensure that jQuery functions remain functional on loaded code?

I have implemented modals on all my pages except for the first one to save time. Here is the script that loads my modals: $(function () { $('#header').load('reusenavbar.php'); $('#loginModal').load('reuseloginmo ...

Ensure that you do not repeat the same action

In my application built on Node.js, I am utilizing Express for API routes and MongoDB as the database. One of the functionalities includes a raffle where users should only be able to enter once. Currently, I am storing participant information in an arra ...

Tips for uploading a file to an Angular component and transmitting it through HTTP

Currently working on a project that involves the following files: app.component.html <div> <input type="file" ([ngModel])="file" accept="application/pdf" onChange="change()"> </div> app.module.ts: file: File = null; change(){ ...

Do you mean using a JSON object as a value?

When creating a JSON object where the value itself is an object, what is the correct way to write it? var data ='{"phone":{"gtd": "080"}}'; OR var data ='{"phone":"{gtd: 080}"}'; This question may seem straightforward. I am curious ...

Create a unique shader in Three.js that remains unaffected by the fog effect

I have implemented a custom shader to add glow to a sphere on my scene. However, I noticed that the fog in the scene affects the sphere but not the glow. When I zoom out, the sphere disappears but the glow remains visible. Is there a way to make the fog ...

I am seeing the object in req.body displayed in reverse order within my Node.js and Express backend application

I encountered an issue while developing a To-do list web application using the MERN stack with Redux. The problem arises when I try to send post data to the backend. In my form, the textfield area is named 'task' (e.g., ) and I input 'jonas& ...

Updating an href based on the presence of a variable in the URL

I've implemented an AMP layout where a unique code is added to the URL based on the traffic source. This code is used to update phone numbers displayed on the site. For instance, if you visit https://example.com/text?bid=1234 I created a script that ...

Display a block by using the focus() method

My objective is : To display a popin when the user clicks on a button To hide the popin when the user clicks elsewhere I previously implemented this solution successfully: Use jQuery to hide a DIV when the user clicks outside of it However, I wanted to ...

How do I obtain the array index ID in Vue.js?

Here's the scenario: I have an array with 4 objects and I need help displaying the index of the array. Can someone assist me with this? https://i.sstatic.net/yjcSW.png https://i.sstatic.net/rbTwl.png ...

Tips on modifying the interface based on the selected entry using jQuery

I am attempting to display a text when different options are selected from the dropdown list. Here is the code for the drop-down list: <div class="dropdown"> <select class="form-control" id="ltype" name="ltype"> <option value=""&g ...

Adjusting form elements with Javascript

I'm looking to refresh my knowledge of JS by allowing users to input their first and last names along with two numbers. Upon clicking the button, I want the text to display as, "Hello Name! Your sum is number!" I've encountered an issue in my co ...

Unable to find the specified element within Gmail

Recently, I've been working on a project with Nightwatch.js where it checks the dev environment and sends a test email to a Gmail account. Following that, it logs into Gmail, locates and clicks on the correct email. My main challenge now is trying to ...

How can I effectively include my variable within an Ajax request function?

Background: Currently, I am developing a Spring WEB MVC application utilizing JSP for the view layer. Within my JSP page, there is an input text field that functions as a jquery daterange picker: <input type="text" name="daterange" value="01/01/2017 - ...

What is the best way to integrate a Vue component into the HTML of another Vue component?

Currently, I am dealing with a large HTML string that is being loaded into a div within my Vue component. This HTML string comes from a WYSIWYG editor and was previously handled using v-html, which worked well. However, I now have scenarios where I need t ...

Modify a number with a check box using inline Ajax

I have an HTML structure similar to this example: <li><label class="desc"><font color="green">Want to receive emails ($<span id="price">50</span>/month)</font></label> <input type="checkbox" checked ...

"VS Code's word wrap feature is beneficial for wrapping long lines of text and code, preventing them from breaking and ensuring they are

text not aligning properly and causing unnecessary line breaks insert image here I attempted to toggle the word wrap feature, installed the Rewrap plugin, and played around with vscode settings ...

"Exploring the process of adding external JavaScript or CSS files into Angular 2 using webpack

Embarking on an angular 2 project with webpack has been quite the adventure. Utilizing the angular2-webpack-starter from https://github.com/AngularClass/angular2-webpack-starter. The task at hand is to integrate external javascripts and css into my app. D ...

Converting a customer ShaderMaterial to Lambert Material using Three.js

Currently, I am utilizing a cell shading script to shade a Lambert material on a model. However, I am facing challenges when trying to apply the same script to a custom Shader Material. Is there a way to convert the custom material into a Lambert materia ...