1. Wiki
  2. Before It's Gone
  3. Email Notifications

Email Notifications

Before It's Gone can send expiry alerts and inventory digests to any email address using either Resend (recommended) or your own SMTP server.

Desktop app only. Email notifications are not available in the web-only build.

Setup

Open the app and go to Settings → Email Notifications.

1. Choose a provider

ProviderBest for
ResendEasiest setup: one API key, reliable delivery
SMTPSelf-hosted mail servers, Gmail SMTP, Fastmail, etc.

2. Configure credentials

Resend

  1. Create a free account at resend.com.
  2. Generate an API key: API Keys → Create API Key. Set permission to Sending access.
  3. Paste the key (starts with re_) into Resend API key in Settings.

SMTP

Fill in the fields that match your mail server:

FieldExample
SMTP hostsmtp.gmail.com
SMTP port587 (STARTTLS) or 465 (SSL)
Usernameyou@gmail.com
PasswordApp password (not your login password)
Use TLSOn for port 587/465, off for local servers on port 25
Gmail users: Enable 2-factor authentication on your Google account, then generate an App Password. Your regular Gmail password will not work.

3. Set a recipient

Enter the email address that should receive notifications in the Recipient email field.

4. Configure digest

SettingDescription
NeverNo automatic digest emails.
DailyOne email per day at the chosen time.
WeeklyOne email per week (sent at least 6.5 days after the last digest).
Send timeTime of day to send the digest (24-hour, e.g. 08:00).

5. Test

Click Send test email to verify your credentials before relying on them.

Digest content

A digest email includes:

  • Expiring items: items within your configured warning window (amber) or already expired (red), with expiry date, quantity, and location.
  • Low stock: items at or below their low-stock threshold, with quantity and threshold.

If nothing is expiring or low, no digest is sent for that cycle.

Pause and snooze

To temporarily stop digest emails, use the Pause emails controls:

OptionEffect
7 daysResumes automatically after 7 days.
30 daysResumes automatically after 30 days.
IndefinitelyStays paused until you click Resume in Settings.

A banner in the app header shows when emails are paused.

Credential storage

Email credentials (API key or SMTP password) are stored in email-settings.json inside Electron's userData directory, not in the browser's localStorage or IndexedDB, and not synced to any cloud. The file is readable only by your user account.

PlatformPath
Linux~/.config/before-its-gone/email-settings.json
macOS~/Library/Application Support/before-its-gone/email-settings.json
Windows%APPDATA%\before-its-gone\email-settings.json

SMTP provider guide

Quick reference for common mail providers. The app only sends email (SMTP); it does not read inboxes.

Provider quick reference

ProviderHostPortTLSAuth
Gmailsmtp.gmail.com587OnApp password
Outlook / Hotmailsmtp-mail.outlook.com587OnAccount password
Microsoft 365smtp.office365.com587OnAccount password
Fastmailsmtp.fastmail.com587OnApp password
Yahoo Mailsmtp.mail.yahoo.com587OnApp password
iCloud Mailsmtp.mail.me.com587OnApp-specific password
Proton Mail Bridge127.0.0.11025OffBridge password
Custom / self-hostedyour server25 / 587 / 465VariesVaries

Port guide

PortProtocolWhen to use
25SMTP plainServer-to-server relay; usually blocked by ISPs for end-user clients.
587SMTP + STARTTLSRecommended. Starts unencrypted, upgrades to TLS. Enable Use TLS in settings.
465SMTP over SSLLegacy but still common. Encrypted from the first byte. Enable Use TLS.

Gmail

Google does not allow SMTP with your regular login password. Generate an App Password (requires 2-Step Verification):

  1. Go to myaccount.google.com/apppasswords.
  2. Click Create app password, name it, and click Create.
  3. Copy the 16-character password shown.
FieldValue
SMTP hostsmtp.gmail.com
SMTP port587
Usernameyour full Gmail address
Passwordthe 16-character app password
Use TLSOn

Outlook / Hotmail / Live

FieldValue
SMTP hostsmtp-mail.outlook.com
SMTP port587
Usernameyour full Outlook address
Passwordyour Microsoft account password
Use TLSOn
Microsoft 365 organizational accounts may require OAuth2 or per-app SMTP settings configured by your IT admin.

Fastmail

Fastmail requires an App Password: Settings → Privacy & Security → Third-party apps → New App Password.

FieldValue
SMTP hostsmtp.fastmail.com
SMTP port587
Usernameyour full Fastmail address
Passwordthe app password
Use TLSOn

Yahoo Mail

Yahoo requires an App Password (requires 2-Step Verification): Account Security → App passwords → Generate app password.

FieldValue
SMTP hostsmtp.mail.yahoo.com
SMTP port587
Usernameyour full Yahoo address
Passwordthe app password
Use TLSOn

iCloud Mail

Apple requires an app-specific password: appleid.apple.com → Sign-In and Security → App-Specific Passwords → Generate.

FieldValue
SMTP hostsmtp.mail.me.com
SMTP port587
Usernameyour full iCloud address (you@icloud.com)
Passwordthe app-specific password
Use TLSOn

Proton Mail (via Bridge)

Proton Mail requires the Proton Mail Bridge desktop app to be running alongside Before It's Gone. Install and sign in to Bridge, then find the local SMTP credentials in the Bridge UI.

FieldValue
SMTP host127.0.0.1
SMTP port1025 (or as shown in Bridge)
Usernameyour Proton address (as shown in Bridge)
Passwordthe Bridge-generated password
Use TLSOff (Bridge handles encryption internally)

Self-hosted (Postfix / Sendmail / Mailcow / etc.)

ConfigurationHostPortTLSAuth
Local relay (no auth)localhost25 or 587OffLeave username/password blank
Authenticated submissionyour server hostname587 or 465OnYour mail user credentials

If your server uses a self-signed certificate, TLS negotiation may fail. Use port 587 with TLS off only on local/private networks, or configure a valid certificate (Let's Encrypt recommended) for public servers.

Troubleshooting

Test email not received

  • Check your spam/junk folder.
  • Verify the API key has Sending access permission (Resend).
  • Check Resend's dashboard for delivery logs and error details.
  • Resend free accounts cannot send to unverified domains by default; confirm your recipient address in the Resend dashboard if required.

"Connection refused" or timeout (SMTP)

  • Verify the host and port are correct.
  • Check that your mail server allows SMTP connections from your machine (firewall rules, ISP blocking of port 25).
  • For self-hosted servers, confirm the SMTP daemon is running (systemctl status postfix etc.).

"Authentication failed" or "535" (SMTP)

  • For Gmail, Yahoo, Fastmail, and iCloud you must use an app password, not your login password.
  • Your account may require 2-factor authentication to be enabled before app passwords are available.
  • Username must be your full email address (e.g. you@gmail.com, not you).

Emails arrive in spam

  • The sender address (notifications@beforeitsgone.local) has no associated domain record, which may trigger spam filters.
  • Configure SPF/DKIM records if you control the sending domain, or use Resend which handles deliverability automatically.
  • Whitelist the sender address in your email client.

Test email works but digests don't arrive

  • Confirm Digest frequency is set to Daily or Weekly (not Never).
  • The digest fires at the configured Send time only if the app is running and the system clock reaches that time.
  • No digest is sent when nothing is expiring or low-stock; the app only sends when there's something to report.
Last updated: 2026-10-04 AetherAssembly/Before-Its-Gone → License: GNU AGPLv3