aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md2
-rw-r--r--commands/compose/send.go16
-rw-r--r--doc/aerc-smtp.5.scd6
3 files changed, 22 insertions, 2 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 53c1dcbe..450465e2 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -11,6 +11,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- Add a `msglist_answered` style for answered messages.
- Compose `Format=Flowed` messages with `format-flowed=true` in `aerc.conf`.
- Add a `trimSignature` function to the templating engine.
+- Change local domain name for SMTP with `smtp-domain=example.com` in
+ `aerc.conf`
### Changed
diff --git a/commands/compose/send.go b/commands/compose/send.go
index 4029552e..1b65ab01 100644
--- a/commands/compose/send.go
+++ b/commands/compose/send.go
@@ -93,6 +93,10 @@ func (Send) Execute(aerc *widgets.Aerc, args []string) error {
if starttls_, ok := config.Params["smtp-starttls"]; ok {
starttls = starttls_ == "yes"
}
+ var domain string
+ if domain_, ok := config.Params["smtp-domain"]; ok {
+ domain = domain_
+ }
ctx := sendCtx{
uri: uri,
scheme: scheme,
@@ -100,6 +104,7 @@ func (Send) Execute(aerc *widgets.Aerc, args []string) error {
starttls: starttls,
from: config.From,
rcpts: rcpts,
+ domain: domain,
}
warn, err := composer.ShouldWarnAttachment()
@@ -236,6 +241,7 @@ type sendCtx struct {
starttls bool
from *mail.Address
rcpts []*mail.Address
+ domain string
}
func newSendmailSender(ctx sendCtx) (io.WriteCloser, error) {
@@ -393,7 +399,7 @@ func newSmtpSender(ctx sendCtx) (io.WriteCloser, error) {
)
switch ctx.scheme {
case "smtp":
- conn, err = connectSmtp(ctx.starttls, ctx.uri.Host)
+ conn, err = connectSmtp(ctx.starttls, ctx.uri.Host, ctx.domain)
case "smtps":
conn, err = connectSmtps(ctx.uri.Host)
default:
@@ -437,7 +443,7 @@ func newSmtpSender(ctx sendCtx) (io.WriteCloser, error) {
return s.w, nil
}
-func connectSmtp(starttls bool, host string) (*smtp.Client, error) {
+func connectSmtp(starttls bool, host string, domain string) (*smtp.Client, error) {
serverName := host
if !strings.ContainsRune(host, ':') {
host += ":587" // Default to submission port
@@ -448,6 +454,12 @@ func connectSmtp(starttls bool, host string) (*smtp.Client, error) {
if err != nil {
return nil, errors.Wrap(err, "smtp.Dial")
}
+ if domain != "" {
+ err := conn.Hello(domain)
+ if err != nil {
+ return nil, errors.Wrap(err, "Hello")
+ }
+ }
if sup, _ := conn.Extension("STARTTLS"); sup {
if !starttls {
err := errors.New("STARTTLS is supported by this server, " +
diff --git a/doc/aerc-smtp.5.scd b/doc/aerc-smtp.5.scd
index 75837150..850a71b2 100644
--- a/doc/aerc-smtp.5.scd
+++ b/doc/aerc-smtp.5.scd
@@ -64,6 +64,12 @@ are available:
Default: _false_
+*smtp-domain* = _<domain>_
+ Local domain name to use in the HELO/EHLO SMTP command. Set this to a fully
+ qualified domain name if the server requires it as an antispam measure.
+
+ Default: _localhost_
+
# SEE ALSO
*aerc*(1) *aerc-accounts*(5)