Как вложить файл к письму PHP?
Проще всего использовать готовые библиотеки для отправки писем, например PHPMailer:
https://github.com/PHPMailer/PHPMailer
По ссылке есть пример, как отправлять письма с вложениями.
Раскурить 5-10 RFC, как правильно форматировать заголовки письма.
Или использовать что-то более умное, чем низкоуровневый mail, например phpmailer.