---
name: "Log::Handler::Output::Sendmail"
section: "3pm"
platform: "linux"
package: "liblog-handler-perl"
version: "0.90-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Log::Handler::Output::Sendmail"
---

# Log::Handler::Output::Sendmail(3pm)

Log messages with sendmail.

## NAME

Log::Handler::Output::Sendmail - Log messages with sendmail.

## SYNOPSIS

```
    use Log::Handler::Output::Sendmail;
    my $email = Log::Handler::Output::Sendmail->new(
        from    => 'bar@foo.example',
        to      => 'foo@bar.example',
        subject => 'your subject',
    );
    $email->log(message => $message);
```

## DESCRIPTION

With this output module it's possible to log messages via `"sendmail"`.

## METHODS

### new()

Call `"new()"` to create a new Log::Handler::Output::Sendmail object.

The following options are possible:

- **from**

  The sender address (From).

- **to**

  The receipient address (To).

- **cc**

  Carbon Copy (Cc).

- **bcc**

  Blind Carbon Copy (Bcc)

- **subject**

  The subject of the mail.

- **sender**

  This option is identical with `"sendmail -f"`.

- **header**

  With this options it's possible to set your own header.

  ```
      my $email = Log::Handler::Output::Sendmail->new(
          from   => 'bar@foo.example',
          to     => 'foo@bar.example',
          header => 'Content-Type: text/plain; charset= UTF-8',
      );
  ```

  Or

  ```
      my $email = Log::Handler::Output::Sendmail->new(
          header => {
              From    => 'bar@foo.example',
              To      => 'foo@bar.example',
              Subject => 'my subject',
              'Content-Type' => text/plain; charset= UTF-8',
          }
      );
  ```

  Or

  ```
      my $email = Log::Handler::Output::Sendmail->new(
          header => [
              'From: bar@foo.example',
              'To: foo@bar.example',
              'Subject: my subject',
              'Content-Type: text/plain; charset= UTF-8',
          ]
      );
  ```

- **sendmail**

  The default is set to `"/usr/sbin/sendmail"`.

- **params**

  Parameters for `"sendmail"`.

  The default is set to `"-t"`.

- **maxsize**

  Set the maximum size of the buffer in bytes.

  All messages will be buffered and if `"maxsize"` is exceeded the buffer is flushed and the messages will be send as email.

  The default is set to 1048576 bytes.

  Set 0 if you want no buffering and send a mail for each log message.

- **debug**

  Set 1 if you want to enable debugging.

  The messages can be fetched with `$SIG`{\_\_WARN\_\_}.

### log()

Call `"log()"` if you want to log a message as email.

```
    $email->log(message => "this message will be mailed");
```

If you pass the level then its placed into the subject:

```
    $email->log(message => "foo", level => "INFO");
    $email->log(message => "bar", level => "ERROR");
    $email->log(message => "baz", level => "DEBUG");
```

The lowest level is used:

```
    Subject: ERROR ...
```

You can pass the level with `"Log::Handler"` by setting

```
    message_pattern => '%L'
```

### flush()

Call `"flush()"` if you want to flush the buffered messages.

### validate()

Validate a configuration.

### reload()

Reload with a new configuration.

### errstr()

This function returns the last error message.

## DESTROY

`"DESTROY"` is defined and called `"flush()"`.

## PREREQUISITES

```
    Carp
    Params::Validate
```

## EXPORTS

No exports.

## REPORT BUGS

Please report all bugs to \<jschulz.cpan(at)bloonix.de\>.

If you send me a mail then add Log::Handler into the subject.

## AUTHOR

Jonny Schulz \<jschulz.cpan(at)bloonix.de\>.

## COPYRIGHT

Copyright (C) 2007-2009 by Jonny Schulz. All rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
