Если по условиям задачи допустимо применение внешних команд - то сначала
man mail,
потом отработка отправки файла через команду
mail
, потом вызов этого всего через
system()
или
exec().
.
Если нужно указывать от кого - вместо
mail
используется
sendmail
.
Если использование внешних команд недопустимо и нужно/хочется обойтись чиста средствами языка (это конечно глупо, но познавательно зело) - берем RFC822, изучаем формат сообщения электронной почты, потом берем и реализуем это.
То есть нужно будет:
- сформировать
правильные заголовки письма
- сформировать вложение (mime-encoded, не забываем про то, что в письме могут присутствовать
только отображаемые ASCII, никаких спецсимволов!)
- подключиться к серверу, передать начальную информацию (кто ты, от кого, кому)
- не забыть про SPF/DKIM/DMARC (иначе с большой долей вероятности письмо будет в корзине, если вообще будет принято - гмыло в этом отношении прост как полено)
- передать сформированное письмо
Wataru правильно сказал - пара месяцев напряженной работы уйдет, зато сколько скиллов сразу подтянете :D
На баше кстати одной строчкой делается (если без изменения From:) и двумя-тремя - если с изменением.