|
@@ -70,7 +70,7 @@ func initializeConfig(configPath, section string) *Config {
|
|
|
func main() {
|
|
|
var err error
|
|
|
var configPath, section, serverAddress, user, password, to, cc, bcc, from, subject, text string
|
|
|
- var encryption, dbg, versionFlag bool
|
|
|
+ var encryption, dbg, versionFlag, interactive bool
|
|
|
var serverPortAux int
|
|
|
var serverPort int64
|
|
|
|
|
@@ -78,6 +78,7 @@ func main() {
|
|
|
flag.StringVar(&configPath, "conf", "", "Path to a config file (defaults to /etc/sendmail.toml)")
|
|
|
flag.StringVar(§ion, "section", "default", "Section of the conf to read (defaults to \"default\")")
|
|
|
flag.BoolVar(&dbg, "dbg", false, "Enable debugging output")
|
|
|
+ flag.BoolVar(&interactive, "interactive", false, "Assume composing mail manually, do not timeout waiting input")
|
|
|
flag.StringVar(&serverAddress, "server-address", "", "The SMTP server address")
|
|
|
flag.IntVar(&serverPortAux, "server-port", 0, "The SMTP server")
|
|
|
flag.BoolVar(&encryption, "force-ssl", false, "Force the use of ssl (defalut: false)")
|
|
@@ -104,14 +105,17 @@ func main() {
|
|
|
if flag.NArg() == 0 {
|
|
|
result := make(chan string, 1)
|
|
|
go readFromConsole(result)
|
|
|
- select {
|
|
|
- case text = <-result:
|
|
|
- Info.Ln("text read from console")
|
|
|
- case <-time.After(5 * time.Minute):
|
|
|
- Error.Ln("timeout reading from console")
|
|
|
- os.Exit(3)
|
|
|
+ if interactive {
|
|
|
+ text = <-result
|
|
|
+ } else {
|
|
|
+ select {
|
|
|
+ case text = <-result:
|
|
|
+ Info.Ln("text read from console")
|
|
|
+ case <-time.After(5 * time.Second):
|
|
|
+ Error.Ln("timeout reading from console")
|
|
|
+ os.Exit(3)
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
} else {
|
|
|
for _, arg := range flag.Args() {
|
|
|
text += fmt.Sprintf("%s\n", arg)
|