# salt.modules.win_smtp_server

Module for managing IIS SMTP server configuration on Windows servers. The Windows features 'SMTP-Server' and 'Web-WMI' must be installed.

depends:

  wmi

salt.modules.win_smtp_server.get_connection_ip_list(as_wmi_format=False, server='SmtpSvc/1')

  Get the IPGrant list for the SMTP virtual server.

  Parameters:

    - as_wmi_format (`bool`, optional) --

      Returns the connection IPs as a list in the format WMI expects.

      Default is `False`.

    - server (`str`, optional) --

      The SMTP server name.

      Default is "SmtpSvc/1".

  Returns:

    A dictionary of the IP and subnet pairs.

  Return type:

    dict

  CLI Example:

      salt '*' win_smtp_server.get_connection_ip_list

salt.modules.win_smtp_server.get_log_format(server='SmtpSvc/1')

  Get the active log format for the SMTP virtual server.

  Parameters:

    server (`str`, optional) --

    The SMTP server name.

    Default is "SmtpSvc/1".

  Returns:

    A string of the log format name.

  Return type:

    str

  CLI Example:

      salt '*' win_smtp_server.get_log_format

salt.modules.win_smtp_server.get_log_format_types()

  Get all available log format names and ids.

  Returns:

    A dictionary of the log format names and IDs.

  Return type:

    dict

  CLI Example:

      salt '*' win_smtp_server.get_log_format_types

salt.modules.win_smtp_server.get_relay_ip_list(server='SmtpSvc/1')

  Get the RelayIpList list for the SMTP virtual server.

  Parameters:

    server (`str`, optional) --

    The SMTP server name.

    Default is "SmtpSvc/1".

  Returns:

    A list of the relay IPs.

  Return type:

    list

  Note

  A return value of None corresponds to the restrictive 'Only the list below' GUI parameter with an empty access list, and setting an empty list/tuple corresponds to the more permissive 'All except the list below' GUI parameter.

  CLI Example:

      salt '*' win_smtp_server.get_relay_ip_list

salt.modules.win_smtp_server.get_server_setting(settings, server='SmtpSvc/1')

  Get the value of the setting for the SMTP virtual server.

  Parameters:

    - settings (list) -- A list of the setting names.

    - server (`str`, optional) --

      The SMTP server name.

      Default is "SmtpSvc/1".

  Returns:

    A dictionary of the provided settings and their values.

  Return type:

    dict

  CLI Example:

      salt '*' win_smtp_server.get_server_setting settings='["MaxRecipients"]'

salt.modules.win_smtp_server.get_servers()

  Get the SMTP virtual server names.

  Returns:

    A list of the SMTP virtual servers.

  Return type:

    list

  CLI Example:

      salt '*' win_smtp_server.get_servers

salt.modules.win_smtp_server.set_connection_ip_list(addresses=None, grant_by_default=False, server='SmtpSvc/1')

  Set the IPGrant list for the SMTP virtual server.

  Parameters:

    - addresses (`dict`, optional) --

      A dictionary of IP + subnet pairs.

      Default is `None`.

    - grant_by_default (`bool`, optional) --

      Whether the addresses should be a blacklist or whitelist.

      Default is `False`.

    - server (`str`, optional) --

      The SMTP server name.

      Default is "SmtpSvc/1".

  Returns:

    A boolean representing whether the change succeeded.

  Return type:

    bool

  CLI Example:

      salt '*' win_smtp_server.set_connection_ip_list addresses='{"127.0.0.1": "255.255.255.255"}'

salt.modules.win_smtp_server.set_log_format(log_format, server='SmtpSvc/1')

  Set the active log format for the SMTP virtual server.

  Parameters:

    - log_format (str) -- The log format name.

    - server (`str`, optional) --

      The SMTP server name.

      Default is "SmtpSvc/1".

  Returns:

    A boolean representing whether the change succeeded.

  Return type:

    bool

  CLI Example:

      salt '*' win_smtp_server.set_log_format 'Microsoft IIS Log File Format'

salt.modules.win_smtp_server.set_relay_ip_list(addresses=None, server='SmtpSvc/1')

  Set the RelayIpList list for the SMTP virtual server.

  Due to the unusual way that Windows stores the relay IPs, it is advisable to retrieve the existing list you wish to set from a pre-configured server.

  For example, setting '127.0.0.1' as an allowed relay IP through the GUI would generate an actual relay IP list similar to the following:

      ['24.0.0.128', '32.0.0.128', '60.0.0.128', '68.0.0.128', '1.0.0.0', '76.0.0.0',
       '0.0.0.0', '0.0.0.0', '1.0.0.0', '1.0.0.0', '2.0.0.0', '2.0.0.0', '4.0.0.0',
       '0.0.0.0', '76.0.0.128', '0.0.0.0', '0.0.0.0', '0.0.0.0', '0.0.0.0',
       '255.255.255.255', '127.0.0.1']

  Note

  Setting the list to None corresponds to the restrictive 'Only the list below' GUI parameter with an empty access list configured, and setting an empty list/tuple corresponds to the more permissive 'All except the list below' GUI parameter.

  Parameters:

    - addresses (`list`, optional) --

      A list of the relay IPs. The order of the list is important.

      Default is `None`.

    - server (`str`, optional) --

      The SMTP server name.

      Default is "SmtpSvc/1".

  Returns:

    A boolean representing whether the change succeeded.

  Return type:

    bool

  CLI Example:

      salt '*' win_smtp_server.set_relay_ip_list addresses='["192.168.1.1", "172.16.1.1"]'

salt.modules.win_smtp_server.set_server_setting(settings, server='SmtpSvc/1')

  Set the value of the setting for the SMTP virtual server.

  Note

  The setting names are case-sensitive.

  Parameters:

    - settings (dict) -- A dictionary of the setting names and their values.

    - server (`str`, optional) --

      The SMTP server name.

      Default is "SmtpSvc/1".

  Returns:

    A boolean representing whether all changes succeeded.

  Return type:

    bool

  CLI Example:

      salt '*' win_smtp_server.set_server_setting settings='{"MaxRecipients": "500"}'