Как для сайта прописать SPF чтобы почта отсылалась через smtp.mail.ru?
IMHO, Если вы отправляете письма от имени пользователя своего MX-сервера - то не получится скрыть IP-источник. SMTP.mail.ru как промежуточный сервер просто обязан указать IP сервера-источника, то есть вашего SMTP.
Если вы будете отсылать письма от имени user_name@mail.ru, залогинившись в SMTP.mail.ru как пользователь user_name - тогда да, источником письма будет сам SMPT.mail.ru, и он сам будет обеспечивать SPF-запись для письма, источником которого сам и является. И ваш IP не будет фигурировать.
API - если что, юзай gmail, там для простого API точно есть