# MailPitHostingExtension Methods

- Package: [CommunityToolkit.Aspire.Hosting.MailPit](/reference/api/csharp/communitytoolkit.aspire.hosting.mailpit.md)
- Type: [MailPitHostingExtension](/reference/api/csharp/communitytoolkit.aspire.hosting.mailpit/mailpithostingextension.md)
- Kind: `Methods`
- Members: `3`

Provides extension methods for adding MailPit to an `Hosting.IDistributedApplicationBuilder`.

## AddMailPit(IDistributedApplicationBuilder, string, int?, int?)

- Name: `AddMailPit(IDistributedApplicationBuilder, string, int?, int?)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<MailPitContainerResource>`
- Source: [GitHub](https://github.com/CommunityToolkit/Aspire/blob/d9dc6fc02412d7398c5722840513d99965a6e98f/src/CommunityToolkit.Aspire.Hosting.MailPit/MailPitHostingExtension.cs#L28-L54)

Adds a MailPit container resource to the `Hosting.IDistributedApplicationBuilder`.

```csharp
public static class MailPitHostingExtension
{
    public static IResourceBuilder<MailPitContainerResource> AddMailPit(
        this IDistributedApplicationBuilder builder,
        string name,
        int? httpPort = null,
        int? smtpPort = null)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IDistributedApplicationBuilder`)
  The `Hosting.IDistributedApplicationBuilder` to which the MailPit resource will be added.
- `name` (`string`)
  The name of the MailPit container resource.
- `httpPort` (`int?`) `optional`
  Optional. The HTTP port on which MailPit will listen.
- `smtpPort` (`int?`) `optional`
  Optional. The SMTP port on which MailPit will listen.

## Returns

`IResourceBuilder<MailPitContainerResource>` -- A reference to the `ApplicationModel.IResourceBuilder`1` for further resource configuration.

## ATS metadata

### ATS export

- Available to Polyglot AppHosts through the Aspire Type System.

## WithDataBindMount(IResourceBuilder<MailPitContainerResource>, string, bool)

- Name: `WithDataBindMount(IResourceBuilder<MailPitContainerResource>, string, bool)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<MailPitContainerResource>`
- Source: [GitHub](https://github.com/CommunityToolkit/Aspire/blob/d9dc6fc02412d7398c5722840513d99965a6e98f/src/CommunityToolkit.Aspire.Hosting.MailPit/MailPitHostingExtension.cs#L87-L93)

Configures a bind mount for the data directory of the MailPit container resource.

```csharp
public static class MailPitHostingExtension
{
    public static IResourceBuilder<MailPitContainerResource> WithDataBindMount(
        this IResourceBuilder<MailPitContainerResource> builder,
        string source,
        bool isReadOnly = false)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<MailPitContainerResource>`)
  The `ApplicationModel.IResourceBuilder`1` to configure the bind mount on.
- `source` (`string`)
  The source path on the host system to bind to the container.
- `isReadOnly` (`bool`) `optional`
  A value indicating whether the bind mount should be read-only. Default is false.

## Returns

`IResourceBuilder<MailPitContainerResource>` -- A reference to the `ApplicationModel.IResourceBuilder`1` with the configured bind mount.

## ATS metadata

### ATS export

- Available to Polyglot AppHosts through the Aspire Type System.

## WithDataVolume(IResourceBuilder<MailPitContainerResource>, string, bool)

- Name: `WithDataVolume(IResourceBuilder<MailPitContainerResource>, string, bool)`
- Modifiers: `extension`
- Returns: `IResourceBuilder<MailPitContainerResource>`
- Source: [GitHub](https://github.com/CommunityToolkit/Aspire/blob/d9dc6fc02412d7398c5722840513d99965a6e98f/src/CommunityToolkit.Aspire.Hosting.MailPit/MailPitHostingExtension.cs#L68-L73)

Configures a data volume for the MailPit container resource.

```csharp
public static class MailPitHostingExtension
{
    public static IResourceBuilder<MailPitContainerResource> WithDataVolume(
        this IResourceBuilder<MailPitContainerResource> builder,
        string name,
        bool isReadOnly = false)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IResourceBuilder<MailPitContainerResource>`)
  The `ApplicationModel.IResourceBuilder`1` used to configure the resource.
- `name` (`string`)
  The name of the data volume to be mounted.
- `isReadOnly` (`bool`) `optional`
  A boolean indicating whether the volume should be mounted as read-only.

## Returns

`IResourceBuilder<MailPitContainerResource>` -- A reference to the `ApplicationModel.IResourceBuilder`1` for further configuration.

## ATS metadata

### ATS export

- Available to Polyglot AppHosts through the Aspire Type System.
