The sentence is lengthy but not incorrect.
Its structure is basically "He said X but Y", which does not need punctuation as long as X and Y are sufficiently simple as to not make it ambiguous as to where the separation between the two is. "He sleeps with a night light but not a teddy bear".
Adding a comma makes the distinction more explicit and clear; in this case, I'd probably have put in the comma even though it's not required.
He said he wouldn't be taking campaign contributions, but that dinners with contributors were of course welcome.
Note also that my lead sentence could have as well been written
The sentence is lengthy, but not incorrect.
It's a matter of taste in such places; the comma here emphasizes that both cases are true and draw attention to one, then to the other.