Вы передаете только имя файла, которое преобразуется в относительный путь, равный C:\Program Files\IIS Express
, потому что ваш код выполняется в IIS Express:
string FileName = System.IO.Path.GetFileName(Server.MapPath("excel/Book1.xlsx"));
mail.Attachments.Add(new Attachment(FileName));
Вам необходимо пройти полный путь, просто удалитеGetFileName()
:
string FileName = Server.MapPath("excel/Book1.xlsx");
mail.Attachments.Add(new Attachment(FileName));