AI News Hub Logo

AI News Hub

Send email from any Linux server in 60 seconds — no SMTP config

DEV Community
Qasim Muhammad

You ssh'd into a fresh Linux box and you need to send an email. Maybe a backup completed. Maybe a deploy succeeded. Maybe a process crashed and you want a stack trace in your inbox. The traditional path: install Postfix, edit main.cf, configure a smart relay, generate SASL credentials, restart the daemon, and pray nothing else on the box uses port 25. That is the 30-minute path. The 60-second path: curl -fsSL https://cli.nylas.com/install.sh | bash ~/.config/nylas/bin/nylas auth config --api-key YOUR_KEY ~/.config/nylas/bin/nylas email send --to [email protected] --subject hi --body "From $(hostname)" Three lines. Zero daemon. Works on every modern Linux distro and macOS. Setting up outbound SMTP from scratch involves five separate concerns: Concern Time Failure mode Install Postfix or Exim 2 min Distro package conflicts Configure relayhost 5 min Wrong port, blocked by ISP, DNS lookup SASL auth to relay 10 min Hashing format, postmap regen TLS to relay 5 min Cert path, CA bundle Test send through queue 5 min mqueue stuck, tail /var/log/mail.log Five places to get it wrong. Most people get it wrong twice before it works. The CLI ships a static binary. No package dependencies, no system services, no firewall punches. The send happens over HTTPS to the Nylas API on port 443 — already open in 99% of environments. Specifically, you are not: Opening port 25 outbound (most cloud providers block this) Setting up STARTTLS to a relay Maintaining sender DKIM/SPF/DMARC keys (the API handles signing) Writing config files in /etc/postfix Real-world recipes Cron job that emails on failure #!/usr/bin/env bash if /usr/local/bin/run-backup.sh; then exit 0 fi nylas email send --to [email protected] \ --subject "[FAIL] backup on $(hostname)" \ --body "$(date): backup failed. See /var/log/backup.log" # /etc/systemd/system/[email protected] [Unit] Description=Notify on service failure for %i [Service] Type=oneshot ExecStart=/usr/local/bin/nylas email send --to [email protected] \ --subject "[%H] %i failed" \ --body "Check journalctl -u %i for details" # In any service that should notify on failure: [Unit] OnFailure=notify-failure@%n.service This is exactly the pattern the systemd man pages document for OnFailure, with one less moving part. nylas email send --to [email protected] \ --subject "✅ Deploy v${VERSION} to prod" \ --body "https://app.example.com/deploys/${DEPLOY_ID}" trap 'nylas email send --to [email protected] --subject "rebuild done on $(hostname)" --body "exit code $?"' EXIT ./long-running-rebuild.sh mailx, msmtp, sendmail? They are venerable, and on a single machine where you already have a working relay, they are fine. Where they hurt: mailx needs an MTA underneath (Postfix, Exim). Nothing changes about the SMTP setup. msmtp is itself an SMTP client, so you still maintain relay credentials and TLS. sendmail is the historical command, usually backed by Postfix. The Nylas CLI replaces all three for the "I need to send from a script" use case. There is no relay to maintain because the relay is the API. # 1. Install curl -fsSL https://cli.nylas.com/install.sh | bash # 2. Add to PATH for the session export PATH="$HOME/.config/nylas/bin:$PATH" # 3. Auth nylas auth config --api-key YOUR_KEY # 4. Test nylas email send --to [email protected] --subject hi --body "from $(hostname)" # 5. Verify it landed (should be in your inbox in <30 sec) If step 5 worked, you are done. Add the binary location to a system-wide PATH (e.g., symlink to /usr/local/bin) if other users on the box need it. If your server has no outbound HTTPS — air-gapped, restricted egress firewall — the CLI cannot reach the API. In that case, ship messages to an internal queue (or a relay box that does have egress) and let that machine call the CLI. The CLI itself is not the bottleneck; outbound HTTPS is. Otherwise, this is the cleanest "make this Linux box send mail" setup I have used. Send email from the terminal — full nylas email send reference Best CLI email tools compared — head-to-head with mutt, mailx, msmtp PowerShell email reports — same idea on Windows Full command reference