diff --git a/server/cleanup.go b/server/cleanup.go
index ef2617fc1c538dcb8213a42033af69f0dde846f5..c59ba674c42d82a2b7051189a7aaede777204141 100644
--- a/server/cleanup.go
+++ b/server/cleanup.go
@@ -94,21 +94,28 @@ func (s *Server) checkKeyExpiration(dn string, key *ldap.OpenPGPkey, name string
 
 	if key.Expiry.Before(time.Now()) {
 		s.ldap.DeleteOpenPGPkey(dn)
+
+		data := NotificationData{
+			Name:        name,
+			Fingerprint: key.Fingerprint,
+			Days:        0,
+		}
+		s.mail.Send([]string{mail}, "openpgp_expire", data)
 	}
 
 	notifiedFingerprint, err := s.db.GetOpenpgpNotification(dn)
 	if err != nil {
 		log.Printf("An error has occurred accessing the user %s last notification: %v", name, err)
 	}
-	if key.Expiry.Add(-notifyKeyExpiredDuration).Before(time.Now()) && notifiedFingerprint != key.Fingerprint {
+	if time.Now().Add(notifyKeyExpiredDuration).After(key.Expiry) && notifiedFingerprint != key.Fingerprint {
 		data := NotificationData{
 			Name:        name,
 			Fingerprint: key.Fingerprint,
-			Days:        int(math.Round(time.Now().Sub(key.Expiry).Hours())),
+			Days:        int(math.Round(time.Now().Sub(key.Expiry).Hours() / 24)),
 		}
 		s.mail.Send([]string{mail}, "openpgp_expire", data)
 
-		err = s.db.AddOpenpgpNotification(name, key.Fingerprint)
+		err = s.db.AddOpenpgpNotification(dn, key.Fingerprint)
 		if err != nil {
 			log.Printf("An error has occurred storing user %s last notification: %v", name, err)
 		}
@@ -119,5 +126,5 @@ func (s *Server) expireDBEntries() {
 	s.db.ExpireInvites(inviteExpireDuration)
 	s.db.ExpireAccounts(accountExpireDuration)
 	s.db.ExpireCollectives(collectiveExpireDuration)
-	s.db.ExpireOpenpgpNotifications(notifyKeyExpiredDuration)
+	s.db.ExpireOpenpgpNotifications(2 * notifyKeyExpiredDuration)
 }
diff --git a/tmpl/openpgp_expire.mail b/tmpl/openpgp_expire.mail
index 19e96415cbc25caed599789ddb353de2b1e5b8ba..2e7c040731b163167c1e7961760e81ebbe0fc21d 100644
--- a/tmpl/openpgp_expire.mail
+++ b/tmpl/openpgp_expire.mail
@@ -5,9 +5,10 @@ Subject: tu clave OpenPGP en sindominio va a expirar
 
 Hola {{.Data.Name}},
 
-En {{.Data.Days}} tu clave OpenPGP con fingerprint:
-  {{.Data.Fingerprint}}
-Visita https://lowry.sindominio.net/ para actualizarla.
+La clave OpenPGP con fingerpring {{.Data.Fingerprint}}
+que has configurado en sindominio {{if .Data.Days}}va a expirar en {{.Data.Days}}{{else}}ha expirado y la hemos borrado{{end}}.
+  
+Puedes visitar https://lowry.sindominio.net/ para actualizarla o subir una clave nueva
 
 Gracias,