diff --git a/go.mod b/go.mod index 9e83765..a175f19 100644 --- a/go.mod +++ b/go.mod @@ -15,7 +15,6 @@ require ( github.com/kovidgoyal/imaging v1.8.21 github.com/leporo/sqlf v1.4.0 github.com/lithammer/shortuuid/v4 v4.2.0 - github.com/mneis/go-telnet v0.0.0-20221017141824-6f643e477c62 github.com/pkg/errors v0.9.1 github.com/prometheus/client_golang v1.23.2 github.com/rqlite/gorqlite v0.0.0-20250609141355-ac86a4a1c9a8 @@ -60,7 +59,6 @@ require ( github.com/prometheus/client_model v0.6.2 // indirect github.com/prometheus/common v0.67.5 // indirect github.com/prometheus/procfs v0.20.1 // indirect - github.com/reiver/go-oi v1.0.0 // indirect github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect github.com/rwcarlsen/goexif v0.0.0-20190401172101-9e8deecbddbd // indirect github.com/ssor/bom v0.0.0-20170718123548-6386211fdfcf // indirect diff --git a/go.sum b/go.sum index 3caa984..9edff93 100644 --- a/go.sum +++ b/go.sum @@ -80,8 +80,6 @@ github.com/mattn/go-runewidth v0.0.23 h1:7ykA0T0jkPpzSvMS5i9uoNn2Xy3R383f9HDx3Ry github.com/mattn/go-runewidth v0.0.23/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs= github.com/mattn/go-sqlite3 v1.14.16 h1:yOQRA0RpS5PFz/oikGwBEqvAWhWg5ufRz4ETLjwpU1Y= github.com/mattn/go-sqlite3 v1.14.16/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= -github.com/mneis/go-telnet v0.0.0-20221017141824-6f643e477c62 h1:XMG5DklHoioVYysfYglOB7vRBg/LOUJZy2mq2QyedLg= -github.com/mneis/go-telnet v0.0.0-20221017141824-6f643e477c62/go.mod h1:niAM5cni0I/47IFA995xQfeK58Mkbb7FHJjacY4OGQg= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/ncruces/go-strftime v1.0.0 h1:HMFp8mLCTPp341M/ZnA4qaf7ZlsbTc+miZjCLOFAw7w= @@ -106,8 +104,6 @@ github.com/prometheus/common v0.67.5 h1:pIgK94WWlQt1WLwAC5j2ynLaBRDiinoAb86HZHTU github.com/prometheus/common v0.67.5/go.mod h1:SjE/0MzDEEAyrdr5Gqc6G+sXI67maCxzaT3A2+HqjUw= github.com/prometheus/procfs v0.20.1 h1:XwbrGOIplXW/AU3YhIhLODXMJYyC1isLFfYCsTEycfc= github.com/prometheus/procfs v0.20.1/go.mod h1:o9EMBZGRyvDrSPH1RqdxhojkuXstoe4UlK79eF5TGGo= -github.com/reiver/go-oi v1.0.0 h1:nvECWD7LF+vOs8leNGV/ww+F2iZKf3EYjYZ527turzM= -github.com/reiver/go-oi v1.0.0/go.mod h1:RrDBct90BAhoDTxB1fenZwfykqeGvhI6LsNfStJoEkI= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= diff --git a/sendmail/cmd/cmd.go b/sendmail/cmd/cmd.go index 5fbad55..7b75ece 100644 --- a/sendmail/cmd/cmd.go +++ b/sendmail/cmd/cmd.go @@ -24,9 +24,10 @@ import ( "regexp" "strings" + "net" + "github.com/axllent/mailpit/config" "github.com/axllent/mailpit/internal/logger" - "github.com/mneis/go-telnet" flag "github.com/spf13/pflag" ) @@ -119,22 +120,25 @@ func Run() { socketAddr, isSocket := socketAddress(SMTPAddr) // handles `sendmail -bs` - // telnet directly to SMTP + // relay stdin/stdout to SMTP connection if UseB && UseS { - var caller = telnet.StandardCaller - switch isSocket { - case true: - if err := telnet.DialToAndCallUnix(socketAddr, caller); err != nil { - fmt.Println(err) - os.Exit(1) - } - default: - if err := telnet.DialToAndCall(SMTPAddr, caller); err != nil { - fmt.Println(err) - os.Exit(1) - } + network := "tcp" + addr := SMTPAddr + if isSocket { + network = "unix" + addr = socketAddr } + conn, err := net.Dial(network, addr) + if err != nil { + fmt.Println(err) + os.Exit(1) + } + defer func() { _ = conn.Close() }() + + go func() { _, _ = io.Copy(os.Stdout, conn) }() + _, _ = io.Copy(conn, os.Stdin) + return }