Используемый вами конструктор не принимает ввод base64, но ему нужен путь к файлу:
public Attachment (string fileName);
Параметры
fileName
String
Строка, содержащая путь к файлу, который необходимо использовать для создания этого вложения.
(цитируется по документации ). И поскольку ваше закодированное изображение длиннее 260 символов, вы получаете исключение, что путь слишком длинный.
Похоже, что один из конструкторов, принимающих Stream
, может быть тем, что вы ищете.
Одна из возможностей преобразовать ваше кодированное в base64 изображение в поток - создать из него MemoryStream
:
var imageBytes = Convert.FromBase64String(Base64urlpath);
using var stream = new MemoryStream(imageBytes);
var attachment = new System.Net.Mail.Attachment(stream, null); // you may want to provide a name here