Recursion involves setting explicitly the initial solution(s) and then defining a function that calls the previous answer and combines this with the incremental change. I'm going to use different variables. n is typically a constant, so I'll define f[n]; and i is a typical increment for sums. In your problem both f[0] and f[1] need to be set initially:
f[0] = 1; f[1] = 1;
f[n_Integer/;n >= 2] := f[n] = f[n-1] + f[n-1]/(n-1)!
Here are the first few instantiations:
f[#] & /@ {0, 1, 2, 3, 4, 5, 6}
{1, 1, 2, 3, 7/2, 175/48, 4235/1152}
And this expression does not try to compute NonNegative Integer inputs:
f[#] & /@ {-1, 1.2, -2.3, 2/4}
{f[-1], f[1.2], f[-2.3], f[1/2]}
For comparison, the explicit expression can also be coded in Mathematica. Here just f[0] needs to be set explicitly:
f[0] = 1;
f[n_Integer?Positive] := f[n] = Sum[f[i]/i!,{i,0,n-1}];
and the output is identical:
f[#] & /@ {0, 1, 2, 3, 4, 5, 6}
{1, 1, 2, 3, 7/2, 175/48, 4235/1152}
While both solutions work, the recursive solution will be efficient for large values of n, since it does not have to recompute the previously solved lower solutions. Although the summation also saves previous values, the full summation is computed for each new value of n.