Самым распространенным вариантом является библиотека PHPMailer, не привязанная к конкретному фреймворку. Умеет SMTP, Inline Attachments и прочие плюшки. Заведите ящик где-нить на Яндексе и используйте их smtp.yandex.ru сервер
Вариативность в данном случае можно реализовать parent-связью, каждый новый цвет - отдельная запись в таблице в поле parent_id которой казан идентификатор родительского товара. Это наиболее простой вариант. Есть и другие варианты, где можно заводить таблицы с атрибутами товаров и таблицу связей атрибутов и товаров.
А если нет возможности изменить исходные коды сайта (лицензия не позволяет или они зазендены), но есть доступ к php.ini и apache.conf. Есть ли какие-то настройки, чтобы вернуть кодировку по умолчанию cp1251