anchor.diff:      AUTH_ANONYMOUS_ORG_ROLE = cfg.auth.anonymous.org_role;
   
       ANALYTICS_REPORTING_ENABLED = boolToString cfg.analytics.reporting.enable;
  +
  +    SMTP_ENABLE = boolToString cfg.smtp.enable;
  +    SMTP_HOST = cfg.smtp.host;
  +    SMTP_USER = cfg.smtp.user;
  +    SMTP_PASSWORD = cfg.smtp.password;
  +    SMTP_FROM_ADDRESS = cfg.smtp.fromAddress;
     } // cfg.extraOptions;
   
   in {
  
positive.code:       {
          assertion = cfg.security.secretKeyFile != opt.security.secretKeyFile.default -> cfg.security.secretKeyFile == null;
          message = "Cannot set both secretKey and secretKeyFile";
        }
      ];
  
  
negative.code:         description = "Secret key used for signing.";
          default = null;
          type = types.nullOr types.path;
        };
      };
  
      smtp = {
        enable = mkEnableOption "smtp";
        host = mkOption {
          description = "Host to connect to";
          default = "localhost:25";
          type = types.str;
        };
        user = mkOption {
          description = "User used for authentication";
          default = "";
          type = types.str;
        };
        password = mkOption {
          description = ''
            Password used for authentication.
            This option is mutual exclusive with the passwordFile option.
          '';
          default = "";
          type = types.str;
        };
        passwordFile = mkOption {
          description = ''
            Password used for authentication.
            This option is mutual exclusive with the password option.
          '';
          default = null;
          type = types.nullOr types.path;
        };
        fromAddress = mkOption {
          description = "Email address used for sending";
          default = "admin@grafana.localhost";
          type = types.str;
        };
      };
  
  