You've already forked watchtower
							
							
				mirror of
				https://github.com/containrrr/watchtower.git
				synced 2025-10-31 00:17:44 +02:00 
			
		
		
		
	| @@ -26,6 +26,7 @@ To receive notifications by email, the following command-line options, or their | ||||
| - `--notification-email-server-port` (env. `WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PORT`): The port used to connect to the SMTP server to send e-mails through. Defaults to `25`. | ||||
| - `--notification-email-server-user` (env. `WATCHTOWER_NOTIFICATION_EMAIL_SERVER_USER`): The username to authenticate with the SMTP server with. | ||||
| - `--notification-email-server-password` (env. `WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD`): The password to authenticate with the SMTP server with. | ||||
| - `--notification-email-delay` (env. `WATCHTOWER_NOTIFICATION_EMAIL_DELAY`): Delay before sending notifications expressed in seconds. | ||||
|  | ||||
| Example: | ||||
|  | ||||
| @@ -39,6 +40,7 @@ docker run -d \ | ||||
|   -e WATCHTOWER_NOTIFICATION_EMAIL_SERVER=smtp.gmail.com \ | ||||
|   -e WATCHTOWER_NOTIFICATION_EMAIL_SERVER_USER=fromaddress@gmail.com \ | ||||
|   -e WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD=app_password \ | ||||
|   -e WATCHTOWER_NOTIFICATION_EMAIL_DELAY=2 \ | ||||
|   containrrr/watchtower | ||||
| ``` | ||||
|  | ||||
|   | ||||
| @@ -129,6 +129,12 @@ func RegisterNotificationFlags(rootCmd *cobra.Command) { | ||||
| 		viper.GetString("WATCHTOWER_NOTIFICATION_EMAIL_TO"), | ||||
| 		"Address to send notification emails to") | ||||
| 	 | ||||
| 	flags.IntP( | ||||
| 		"notification-email-delay", | ||||
| 		"", | ||||
| 		viper.GetInt("WATCHTOWER_NOTIFICATION_EMAIL_DELAY"), | ||||
| 		"Delay before sending notifications, expressed in seconds") | ||||
|  | ||||
| 	flags.StringP( | ||||
| 		"notification-email-server", | ||||
| 		"", | ||||
|   | ||||
| @@ -29,6 +29,7 @@ type emailTypeNotifier struct { | ||||
| 	tlsSkipVerify          bool | ||||
| 	entries                []*log.Entry | ||||
| 	logLevels              []log.Level | ||||
| 	delay                  time.Duration | ||||
| } | ||||
|  | ||||
| func newEmailNotifier(c *cobra.Command, acceptedLogLevels []log.Level) t.Notifier { | ||||
| @@ -41,6 +42,7 @@ func newEmailNotifier(c *cobra.Command, acceptedLogLevels []log.Level) t.Notifie | ||||
| 	password, _ := flags.GetString("notification-email-server-password") | ||||
| 	port, _ := flags.GetInt("notification-email-server-port") | ||||
| 	tlsSkipVerify, _ := flags.GetBool("notification-email-server-tls-skip-verify") | ||||
| 	delay, _ := flags.GetInt("notification-email-delay") | ||||
|  | ||||
| 	n := &emailTypeNotifier{ | ||||
| 		From:          from, | ||||
| @@ -51,6 +53,7 @@ func newEmailNotifier(c *cobra.Command, acceptedLogLevels []log.Level) t.Notifie | ||||
| 		Port:          port, | ||||
| 		tlsSkipVerify: tlsSkipVerify, | ||||
| 		logLevels:     acceptedLogLevels, | ||||
| 		delay:         time.Duration(delay) * time.Second, | ||||
| 	} | ||||
|  | ||||
| 	log.AddHook(n) | ||||
| @@ -117,9 +120,15 @@ func (e *emailTypeNotifier) StartNotification() { | ||||
| } | ||||
|  | ||||
| func (e *emailTypeNotifier) SendNotification() { | ||||
| 	if e.entries != nil && len(e.entries) != 0 { | ||||
| 		e.sendEntries(e.entries) | ||||
| 	if e.entries == nil || len(e.entries) <= 0 { | ||||
| 		return | ||||
| 	} | ||||
|  | ||||
| 	if e.delay > 0 { | ||||
| 		time.Sleep(e.delay) | ||||
| 	} | ||||
|  | ||||
| 	e.sendEntries(e.entries)	 | ||||
| 	e.entries = nil | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user