Giter VIP home page Giter VIP logo

mailrelay's Introduction

mailrelay

Build Status Report Card

mailrelay is a simple mail relay that can take unauthenticated SMTP emails (e.g. over port 25) and relay them to authenticated, TLS-enabled SMTP servers. Plus it's easy to configure.

Prebuilt binaries are available here for Linux, MacOS, Windows, OpenBSD.

Use case

Some older appliances such as scanners, multi-function printers, RAID cards or NAS boxes with monitoring, can only send email without any authentication or encryption over port 25. mailrelay can send those emails to your Gmail, Fastmail or other provider.

Run mailrelay on a local PC or server and set your device (e.g. scanner) to send mail to it.

mailrelay can be compiled for any Go supported platform including Linux, MacOS, Windows.

Encryption

mailrelay uses TLS to connect to your SMTP provider. By default implicit TLS connections are assumed, meaning the connection is established using TLS at the socket level. This is in accordance with RFC 8314 section 3. These connections usually use port 465.

However, some providers do not adhere to this recommendation (I'm looking at you Office365!) and only support the legacy STARTTLS command, which expects a non-encrypted socket connection at first, which is then upgraded to TLS. To enable this, set smtp_starttls to true in your config. You may also need to set smtp_login_auth_type to true which enables the legacy LOGIN authentication method. These connections usually use port 587.

Testing your configuration

You can send a test email using the -test flag. A email will be sent using the SMTP provider specified in your mailrelay.json configuration.

./mailrelay -config=./mailrelay.json -test [email protected] [email protected]

Example (Linux)

On local PC (192.168.1.54) create file /etc/mailrelay.json with contents:

/etc/mailrelay.json

{
    "smtp_server":   "smtp.fastmail.com",
    "smtp_port":     465,
    "smtp_starttls": false,
    "smtp_username": "[email protected]",
    "smtp_password": "secretAppPassword",
    "smtp_max_email_size": 10485760,
    "smtp_login_auth_type": false,
    "local_listen_ip": "0.0.0.0",
    "local_listen_port": 2525,
    "allowed_hosts": ["*"],
    "timeout_secs": 30
}

Run mailrelay,

./mailrelay

Default location for configuration file is /etc/mailrelay.json but can be changed via --config flag. For example,

mailrelay --config=/home/myname/mailrelay.json

Configure your scanner or other device to send SMTP mail to server 192.168.1.54:2525. Each email will be relayed to smtp.fastmail.com using the credentials above, including any file attachments.

Example 2 (Linux - Systemd service)

Create configuration file as above, and also create,

/etc/systemd/system/mailrelay.service

[Unit]
Description=Mail Relay Service
After=network.target
StartLimitIntervalSec=0

[Service]
Type=simple
Restart=always
RestartSec=5
ExecStart=/usr/local/bin/mailrelay

[Install]
WantedBy=multi-user.target

Copy mailrelay to /usr/local/bin/.

Run,

sudo systemctl start mailrelay
sudo systemctl enable mailrelay

Now mailrelay runs as a service daemon and will automatically start after reboot.

Feedback

Send any questions or comments to [email protected]

mailrelay's People

Contributors

wiggin77 avatar philippebeaulieu avatar ziadmoubayed avatar dependabot[bot] avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.