I know that you can squelch your opponent when you first meet them but is there any way that you can set the game up to auto-squelch?
No, there is no such thing built-in Hearthstone itself, and the Blizzard team is somewhat against the idea: (source)
Auto-squelch is something that's been discussed by the Hearthstone team before, but it's not something we're comfortable with. What would likely happen were auto-squelch implemented is that players would enable it after a single incident, and that would be it. They would never reactivate emotes, and as more players did it over time, emotes would largely be devalued.
Squelch exists as it does now as a means to ignore someone being particularly vocal. If someone is just spamming 'thanks' over and over, you have a means to deal with it, and bypass perceived rude behavior. You absolutely have the option to squelch every single opponent you play, and we're comfortable with that. We simply don't want to give players the option to forever disable emotes with the click of a single button.
There's a lot of feedback on this particular issue, and it's something we're constantly evaluating, but that's where we are as a team, presently.
There are however some third-party plugins that do this. For example this one. However, this is against the ToS of Blizzard, because what this does is click the Squelch button automatically. You cannot do that with pen and paper.
There is a third party software for automatic squelching your opponent - http://altrixsoft.com/en/autosquelch/