Ompragash Viswanathan 5b0a93b192 fix: use WithTLSPolicy instead of WithTLSPortPolicy to preserve user-configured SMTP port
WithTLSPortPolicy calls SetTLSPortPolicy, which checks `c.port == DefaultPort`
(25) to decide whether the port was explicitly set or left as default. When a
user configures port 25 — common for internal relay hosts that accept plaintext
SMTP — the guard condition evaluates true and the library silently overrides the
port to 587 (DefaultPortTLS) with a fallback to 25.

This causes a two-stage failure in environments where port 587 is unreachable:

  1. The primary dial to host:587 blocks for the full 15-second connection
     timeout (go-mail DefaultTimeout) waiting on a firewalled port.
  2. The fallback dial to host:25 fires with an already-expired context,
     producing a misleading "lookup <host>: i/o timeout" DNS error rather
     than the actual root cause (port 587 unreachable).

The previous mail library (gopkg.in/mail.v2) used the port value directly
without any policy-based override, so this regression surfaced only after
migrating to github.com/wneessen/go-mail.

WithTLSPolicy applies the same STARTTLS negotiation semantics (NoTLS or
TLSOpportunistic) without mutating the port, which is the correct choice
when the caller has already provided an explicit port via WithPort.
2026-02-17 19:30:07 +05:30
2025-10-14 17:29:12 +05:30
2025-10-14 14:54:16 +05:30
2024-04-02 19:50:58 +05:30
2025-10-14 14:52:40 +05:30
2015-12-11 10:40:37 +01:00
2025-10-14 17:49:17 +05:30
2017-01-16 15:06:10 +01:00
2018-02-08 16:50:01 +01:00
2024-12-05 11:53:14 +05:30

drone-email

Go Doc Go Report

Drone plugin to send build status notifications via Email. For the usage information and a listing of the available options please take a look at the docs.

Binary

Build the binary with the following command:

go build

Docker

Build the docker image with the following commands:

docker build -t plugins/email:latest .

Build the docker for ARM with buildx

docker buildx create --name mybuilder
docker buildx use mybuilder
docker buildx build --file Dockerfile.armhf --platform linux/arm64/v7,linux/arm64 -t drone-email:latest .

This will create a Docker image called plugins/email:latest. Please note incorrectly building the image for the correct x64 linux and with GCO disabled will result in an error when running the Docker image:

docker: Error response from daemon: Container command
'/bin/drone-email' not found or does not exist..

Example

Execute from the working directory:

docker run --rm \
  -e PLUGIN_FROM.ADDRESS=drone@test.test \
  -e PLUGIN_FROM.NAME="John Smith" \
  -e PLUGIN_HOST=smtp.test.test \
  -e PLUGIN_USERNAME=drone \
  -e PLUGIN_PASSWORD=test \
  -e DRONE_REPO_OWNER=octocat \
  -e DRONE_REPO_NAME=hello-world \
  -e DRONE_COMMIT_SHA=7fd1a60b01f91b314f59955a4e4d4e80d8edf11d \
  -e DRONE_COMMIT_BRANCH=master \
  -e DRONE_COMMIT_AUTHOR=octocat \
  -e DRONE_COMMIT_AUTHOR_EMAIL=octocat@test.test \
  -e DRONE_BUILD_NUMBER=1 \
  -e DRONE_BUILD_STATUS=success \
  -e DRONE_BUILD_LINK=http://github.com/octocat/hello-world \
  -e DRONE_COMMIT_MESSAGE="Hello world!" \
  -v $(pwd):$(pwd) \
  -w $(pwd) \
  plugins/email
S
Description
No description provided
Readme Apache-2.0 72 MiB
Languages
Go 98.9%
Shell 0.6%
Makefile 0.5%