# Python script to e-mail an on call roster

**URL:** <https://forum.inductiveautomation.com/t/python-script-to-e-mail-an-on-call-roster/24020>\
**Category:** Ignition\
**Created:** [April 10, 2019, 9:32pm UTC](https://forum.inductiveautomation.com/t/python-script-to-e-mail-an-on-call-roster/24020 "2019-04-10T21:32:10Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![boster281](https://avatars.discourse-cdn.com/v4/letter/b/ea666f/32.png) [@boster281](https://forum.inductiveautomation.com/u/boster281)\
**Post date:** [April 10, 2019, 9:32pm UTC](https://forum.inductiveautomation.com/t/python-script-to-e-mail-an-on-call-roster/24020/1 "2019-04-10T21:32:10Z")

</div>

I have a report that i am creating and distributing using the system.report.executeAndDistribute function on a button press, but with our ever changing group of workers I am constantly updating the e-mail addresses. Is there a function to use an on-call roster since that can be changed with a few clicks?

---

<div class="post-metadata">

**Author:** ![lrose](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/lrose/32/62724_2.png) [@lrose](https://forum.inductiveautomation.com/u/lrose)\
**Post date:** [April 11, 2019, 12:11pm UTC](https://forum.inductiveautomation.com/t/python-script-to-e-mail-an-on-call-roster/24020/2 "2019-04-11T12:11:13Z")

</div>

From the [manual](https://docs.inductiveautomation.com/display/DOC79/system.alarm.getRosters)

```auto
rosters = system.alarm.getRosters()

for key, values in rosters.iteritems():

    # key is the roster name, values is a dict of usernames

    print 'Roster', key, 'contains these users:'

    for value in values:

        print ' ', value

```

---

<div class="post-metadata">

**Author:** ![boster281](https://avatars.discourse-cdn.com/v4/letter/b/ea666f/32.png) [@boster281](https://forum.inductiveautomation.com/u/boster281)\
**Post date:** [April 12, 2019, 1:42pm UTC](https://forum.inductiveautomation.com/t/python-script-to-e-mail-an-on-call-roster/24020/3 "2019-04-12T13:42:18Z")

</div>

So that gets me all of the rosters and the names of the people in them. But how can I use that to create an e-mail list from a individual roster to use system.report.executeanddistribute?

---

<div class="post-metadata">

**Author:** ![JordanCClark](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/jordancclark/32/83362_2.png) [@JordanCClark](https://forum.inductiveautomation.com/u/JordanCClark)\
**Post date:** [April 12, 2019, 3:10pm UTC](https://forum.inductiveautomation.com/t/python-script-to-e-mail-an-on-call-roster/24020/4 "2019-04-12T15:10:26Z")

</div>

No user source tpye was specified, but this assumes the users are in an internal user source.

```python
rosterUsers = rosters['rosterName']

userInfo = system.user.getUsers('default')

contacts = [user.contactInfo for user in userInfo if user.get('username') in rosterUsers]

print contacts

```
