Eine Reihe von Problemen kann zu diesem Feher führen, vgl. https://stackoverflow.com/questions/1297084/phpmailer-error-could-not-instantiate-mail-function
Sie können auf der Linux-Konsole einfach mal testen, ob Sie die E-Mail von dort aus verschicken können:
printf "From:absender@musterfirma.de\nSubject: E-Mail-Test" | sendmail -v mustermann@gmx.de
Auf einem Webserver sind einige Einstellungen erforderlich (z.B. Postfix-Konfiguration), damit er E-Mails versenden kann, und noch mehr Einstellungen, damit diese nicht direkt im nächsten Spamfilter hängen bleiben. Letztere lassen sich mit dem Online-Dienst https://www.mail-tester.com/ recht gut überprüfen.
In aller Regel ist es die bessere Lösung (zuverlässiger, weniger Filter-Probleme, evtl. auch einfacher in Hinblick auf Datenschutz), wenn der Webserver die E-Mails nicht direkt verschickt, sondern sie via SMTP an einen Mailserver übergibt, welcher für den Versand schon korrekt eingerichtet wurde, weil das seine Hauptbeschäftigung ist. Sie können dafür in den Server-Einstellungen bei den Serienmail-Einstellungen die Zugangsdaten für den SMTP-Versand hinterlegen.