> For the complete documentation index, see [llms.txt](https://docs.infotopics.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.infotopics.com/mailscheduler/v4.2/support/faq.md).

# FAQ

<details>

<summary>Does Apps for Tableau look at any of my data?</summary>

No, MailScheduler is a on-premises solution without the need of any internet connection. Our SaaS solutions are hosted in an isolated Azure environment only accessible for a by you approved group of engineers.

</details>

<details>

<summary>Can MailScheduler run in docker  / kubernetes?</summary>

Yes MailScheduler can run in a container. The configuration for this is next-level since it needs to be configured manually without the one-click installer.  Reach out to our support channel for the possibilities.

</details>

<details>

<summary>Can I change the API version of the Tableau Rest API that MailScheduler uses?</summary>

Yes, you can change the version of the Tableau Rest API that MailScheduler uses. The default is 3.15. You can set a variable in the config.yaml in the installation folder.

<pre class="language-yaml"><code class="lang-yaml"><strong>tableau_api_version: 3.23
</strong></code></pre>

Ensure you put it in the correct place in the file and leave the indentation intact. The 'env:' is already there; place it just below that as follows:

<pre class="language-yaml"><code class="lang-yaml"><strong>env:
</strong><strong>  tableau_api_version: 3.23
</strong></code></pre>

</details>

<details>

<summary>How to set the number of parallel requests to the Tableau Rest API?</summary>

In the config yaml you can add the this. Note that Tableau Server or Cloud limits the number of concurrent requests so adjust the value to align with that limit. On default this is 20.

<pre class="language-yaml"><code class="lang-yaml"><strong>env:
</strong><strong>  tableau_concurrency: 5
</strong></code></pre>

</details>

<details>

<summary>Can you explain more about the config yaml file structure?</summary>

The config yaml is a configuration file located in the installation folder. Here we store all variables and secrets. Note that it is wise to limit access to the installation folder or server to keep your secrets secure.

Once you open the file you will see the contents.&#x20;

```yaml
http:
  address: 0.0.0.0:38293
  ssl:
    address: :8899
    cert: .app-runtime/ssl.crt
    key: .app-runtime/ssl.key
    redirect: true
mail-scheduler:
  domain: mailscheduler.appsfortableau.com
  env:
    app:
      license: xxxxx
      url: https://mailscheduler.appsfortableau.com
    db:
      connection: sqlite-default
      database: mailscheduler.sqlite
      driver: sqlite
      host: ""
      password: ""
      schema: public
      username: ""
    mail:
      encryption: tls
      from:
        address: no-reply@appsfortableau.com
        name: MailScheduler
      host: smtp.office365.com
      mailer: smtp
      password: xxxxx
      port: 587
      username: no-reply@appsfortableau.com
    user_created: true
  proxy:
    enabled: false
    external_domain: ""
    external_port: 0
    external_ssl: true    
```

Note that the indentation is always two spaces.

For specific env variables used within the MailScheduler app we focus on the 'env' part. Here you see items like database credentials and mail credentials.

It doesn't matter if you would use and '\_' (underscore) or a ':' (colon) and new line. Example:

```yaml
  env:
    app:
      license: xxxxx
      url: https://mailscheduler.appsfortableau.com
```

Is exactly the same as:

```yaml
  env:
    app_license: xxxxx
    app_url: https://mailscheduler.appsfortableau.com
   
```

**IMPORTANT:** After saving any changes to the config.yaml, you will **always** need to shut down and restart the Mailscheduler app, or they will not be applied properly.

</details>

<details>

<summary>Can I change the PDF caching time?</summary>

In the config yaml you can add the this. The default is 60 minutes. The minimum is 1 minute.

<pre class="language-yaml"><code class="lang-yaml"><strong>env:
</strong><strong>  tableau_max_age: 1
</strong></code></pre>

</details>

<details>

<summary>How does MailScheduler handle timezones for scheduled messages?</summary>

The time you set in the schedule (e.g., **07:00**) is based on the timezone configured in your MailScheduler settings.

**How to change the Timezone:**

* Go to your MailScheduler installation directory.
* Open the `app.config.yaml` file.
* Add the following line under the `env > app` section:

  <pre><code><strong>env:
  </strong>  app:
      timezone: Europe/Amsterdam
      license: your_license_key
  </code></pre>
* Replace `Europe/Amsterdam` with your preferred [IANA timezone identifier](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones), for example:
  * `Europe/London`
  * `America/New_York`
  * `Asia/Tokyo`
* Save the file.
* Restart the MailScheduler service.

**Note:** This timezone setting applies to all scheduled tasks and emails in MailScheduler.

</details>

<details>

<summary>Does the application provide a health check endpoint for load balancers?</summary>

Yes. Our application exposes a dedicated health check URL that load balancers can call to verify that the application is running and ready to accept traffic. The Url is the http\://\[hostname]/health or https\://\[hostname]/health when you are using ssl

</details>

<details>

<summary><strong>Why can’t I access the MailScheduler from the internet?</strong></summary>

The MailScheduler runs only on the local virtual machine (VM) and is **not hosted on a public server**. Because the VM has no public IP address, it cannot be accessed from the internet.

To make it work inside the VM:

1. Open the `hosts` file (`C:\Windows\System32\drivers\etc\hosts`).
2. Add entries that map loopback addresses to your domain, for example:

This ensures the MailScheduler runs correctly and can send emails from the VM.

```
127.0.0.1 mailscheduler.yourdomain.com
127.0.0.2 mailschedulernew.yourdomain.com
```

</details>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.infotopics.com/mailscheduler/v4.2/support/faq.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
