Для правильного решения этого вопроса, надо освоить две важные концепции. Нет, три.
1. Начать
отличать файлы от виртуальных адресов. Не то чтобы это обязательно было причиной, но указывать URL вместо пути к файлу некорректно.
2. Освоить такое понятие, как
отладка. Если что-то не работает, то скорее всего пишет ошибки. Ошибки надо обязательно читать, чтобы исправить.
Не бывает волшебного кода, который работает вообще всегда, стоит только его "обнаружить на просторах интернета". Любой код может не работать по миллиону причин, от него не зависящих.
Отсюда следует важный вывод:
вам не нужно знать, как прикреплять файлы. Вы это и так уже знаете. Вам нужно научиться видеть выдаваемые РНР ошибки, чтобы их прочитать, загуглить, и в итоге исправить.
3. Учить английский. И не просто наобум копировать код, найденный на просторах интернета, но и стараться разобраться - что он делает. Это видно даже из названий функций. И таким образом отбрасывать заведомо нерабочие варианты типа $mail->addAttachment(file_get_contents($path));