Вы должны использовать предварительно написанные библиотеки (например, http://swiftmailer.org/) для отправки электронных писем, особенно с вложениями, встроенными или нет.
Построение действительного и почтового сообщения, поддерживаемого клиентом, является довольно сложной задачей, особенно если вы никогда не делали этого раньше. Так зачем тратить время на то, чтобы заново изобрести weel, если кто-то уже сделал эту работу за вас?
Задайте этот вопрос с другого конца, и если вы хотите построить свою собственную библиотеку, проанализируйте, что уже было сделано в SwiftMailer, и используйте эти фрагменты, где это необходимо.