---
title: Charmhub | milter interface
description: Interfaces describe the relation between two charms. This interface shows
  opinionated, standardized interface specifications for charm relations.
url: https://charmhub.io/integrations/milter
---

# milter

## Overview

This relation interface specification describes the expected behavior of charms integrating over the `milter` Juju interface to provide or consume a mail filter (milter).

## Usage

In most cases, this will be accomplished by manually parsing the relation data, given its simple nature.

## Direction

The `milter` interface implements a provider/requirer pattern.
The requirer is a charm that requires Milter details to connect to a Milter server, and the provider is a charm serving as Milter.

```
flowchart TD
    Provider -- port --> Requirer
```

## Behavior

The requirer and the provider must adhere to a certain set of criteria to be considered compatible with the interface.

### Provider

* Is expected to provide the Milter port so that the requirer can connect.

### Requirer

* Is not expected to publish anything
* Is expected to combine the provided milter port with the provider's `ingress-address` to connect

## Relation Data

### Provider

[[Pydantic Schema]](https://github.com/canonical/charmlibs/blob/main/interfaces/milter/interface/vv0/schema.py)

Provider publishes the Milter configuration. It should be placed in the **unit** databag.

#### Example

## Charms implementing this interface

### Providers

* [opendkim](https://charmhub.io/opendkim)

### Requirers

* [postfix-relay](https://charmhub.io/postfix-relay)

## Other charms using this interface

### Providers

### Requirers
