# Server, which is hardcoded now is smtp.gmail.com
#Enter email to send messages from, dev-list subsricption may be required
username=

#Use org.apache.ignite.tcbot.common.conf.PasswordEncoder to encode password
encoded_password=

#Specify slack Auth token
slack.auth_token=

#Specify slack channel name (without #)
slack.channel=