testet on Cisco Catalyst and Aruba / HP ProCurve switches
Ansible sends you an email with all offline ports and their description
Combine it with a cron to automate the process
CentOS
yum install perl-Net-SNMP
yum install ansible
add switch with name and ip to switchlist
change SNMP community in report.pl
chmod u+x report.pl
change "offline_ports" in portreport.yml to the path where the file should be created
add the ip address of your mailserver
ansible-playbook /path/to/portreport.yml
For example: Every 1st of a month at 7:30
30 07 1 * * ansible-playbook /path/to/portreport.yml