emersion / emersion/go-smtp

Support (or allow) HELP command implementation

Open
#264 1 comment 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Go
Stars
2.1k
Forks
274
Avg merge
6d 22h
Merged PRs (30d)
1

Description

Currently conn.go does not support HELP SMTP command and throws a 502.

This presents a problem because many clients, like curl, request HELP upon connection.

```
curl -v "smtp://$SMTP_SERVER_HOST:$SMTP_SERVER_PORT"
* Trying 34.212.234.28:2525...
* Connected to redacted (REDACTED) port 2525
< 220 redacted ESMTP Service Ready
> EHLO Jacks-MBP-3
< 250-Hello Jacks-MBP-3
< 250-PIPELINING
< 250-8BITMIME
< 250-ENHANCEDSTATUSCODES
< 250-CHUNKING
< 250-STARTTLS
< 250-AUTH PLAIN
< 250 SIZE 104857600
> HELP
< 502 5.5.1 HELP command not implemented
* Command failed: 502
> QUIT
< 221 2.0.0 Bye
* Closing connection
curl: (8) Command failed: 502
```

Do you have any plans to implement or allow implementation (by interface extension) of basic HELP response? I really admire and appreciate your work. Happy to add PR if this is acceptable.

Contributor guide

Open the contributing guide

Research direction

Start in conn.go and reproduce the SMTP session with the curl command shown in the issue, focusing on how unsupported commands return 502. Determine the project’s existing server command-handling extension points, then make HELP produce an accepted basic response or be implementable through the proposed interface; done means curl no longer fails on HELP.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
networking
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.