Задачка такая. Пользователь вводит логин/пароль от своей почты, в дальнейшем требуется отправлять почту от его аккаунта. В SwiftMailer при отправке указываются HOST, PORT, ENCRYPTION. Где их можно взять для введённой почты пользователя?
Ну раз требуется отправлять от его аккаунта, то можно у него же и спросить все необходимые настройки на том же этапе, на котором у него логин/пароль спрашивают.
Тогда задача не имеет решения. Поясню. Через DNS можно выдернуть MX-записи всех серверов, обслуживающих домен данного пользователя. Но вот на каком из всего-ничего 65535 портов висит сервер исходящей почты и какая конфигурация сеанса связи с ним - ты без подсказок не узнаешь.
Ну драсьте. Во-первых, у нормальных почтовых клиентов уже давно есть база типовых рецептов. Во-вторых, эта база типовых рецептов встает на колени когда ты вводишь какую-нибудь свою почту - корпоративную например - потому что нет рецепта. И ты должен сам предоставить эти данные, возможно уточнив их у своего системного администратора.