[proofplan]
We use the concrete model of the [direct sum](/page/Direct%20Sum) as the module of finitely supported families $(m_i)_{i \in I}$ with $m_i \in M_i$. The required map is forced to send such a family to the finite sum of the values $f_i(m_i)$ in $N$. Finite support makes the formula meaningful, linearity of the $f_i$ makes it $R$-linear, and the canonical inclusions show both compatibility and uniqueness.
[/proofplan]
[step:Define the induced map by summing over the finite support]
For an element $m = (m_i)_{i \in I} \in \bigoplus_{i \in I} M_i$, define its support by
\begin{align*}
\operatorname{supp}(m) := \{i \in I : m_i \ne 0\}.
\end{align*}
By definition of the direct sum, $\operatorname{supp}(m)$ is finite. Define a map
\begin{align*}
f: \bigoplus_{i \in I} M_i \to N
\end{align*}
by
\begin{align*}
f(m) := \sum_{i \in \operatorname{supp}(m)} f_i(m_i),
\end{align*}
where the empty sum is interpreted as $0_N$. This is a finite sum in the underlying abelian group of $N$, so the formula defines an element of $N$ for every $m \in \bigoplus_{i \in I} M_i$.
[/step]
[step:Verify that the induced map is $R$-linear]
Let $m = (m_i)_{i \in I}$ and $n = (n_i)_{i \in I}$ be elements of $\bigoplus_{i \in I} M_i$. Define the finite set $S := \operatorname{supp}(m) \cup \operatorname{supp}(n)$. For every $i \notin S$, one has $m_i = n_i = 0$, so $(m+n)_i = 0$. Since each $f_i$ is $R$-linear, $f_i(0)=0_N$, and all sums defining $f(m)$, $f(n)$, and $f(m+n)$ may be taken over $S$.
Additivity now follows from the $R$-linearity of each component map:
\begin{align*}
f(m+n) = \sum_{i \in S} f_i(m_i+n_i).
\end{align*}
For each $i \in S$, $f_i(m_i+n_i)=f_i(m_i)+f_i(n_i)$. Therefore
\begin{align*}
f(m+n) = \sum_{i \in S} \bigl(f_i(m_i)+f_i(n_i)\bigr).
\end{align*}
Because addition in $N$ is associative and commutative, this finite sum splits as
\begin{align*}
f(m+n) = \sum_{i \in S} f_i(m_i) + \sum_{i \in S} f_i(n_i) = f(m)+f(n).
\end{align*}
For scalar multiplication, let $r \in R$. Since $m_i=0$ implies $rm_i=0$, we have $\operatorname{supp}(rm) \subseteq \operatorname{supp}(m)$. Hence
\begin{align*}
f(rm) = \sum_{i \in \operatorname{supp}(m)} f_i(rm_i).
\end{align*}
By $R$-linearity of each $f_i$, this becomes
\begin{align*}
f(rm) = \sum_{i \in \operatorname{supp}(m)} r f_i(m_i).
\end{align*}
Distributivity of scalar multiplication over finite sums in the left $R$-module $N$ gives
\begin{align*}
f(rm) = r \sum_{i \in \operatorname{supp}(m)} f_i(m_i) = r f(m).
\end{align*}
Thus $f$ is $R$-linear.
[guided]
The only possible subtlety is that the index set $I$ may be infinite, but the direct sum only allows finitely supported families. That finiteness is what makes the formula for $f$ meaningful and lets us reduce every calculation to a finite sum.
Take $m = (m_i)_{i \in I}$ and $n = (n_i)_{i \in I}$ in $\bigoplus_{i \in I} M_i$, and set
\begin{align*}
S := \operatorname{supp}(m) \cup \operatorname{supp}(n).
\end{align*}
Both supports are finite, so $S$ is finite. If $i \notin S$, then $m_i=0$ and $n_i=0$, hence $(m+n)_i=0$. Because each $f_i$ is $R$-linear, it sends $0$ to $0_N$, so the terms outside $S$ contribute nothing.
We compute additivity on this common finite index set:
\begin{align*}
f(m+n) = \sum_{i \in S} f_i(m_i+n_i).
\end{align*}
For each $i \in S$, additivity of $f_i$ gives $f_i(m_i+n_i)=f_i(m_i)+f_i(n_i)$. Therefore
\begin{align*}
f(m+n) = \sum_{i \in S} \bigl(f_i(m_i)+f_i(n_i)\bigr).
\end{align*}
Since $N$ is an abelian group under addition, finite sums may be regrouped, so
\begin{align*}
f(m+n) = \sum_{i \in S} f_i(m_i) + \sum_{i \in S} f_i(n_i).
\end{align*}
Those two sums are exactly $f(m)$ and $f(n)$, because the terms outside the original supports are zero. Hence
\begin{align*}
f(m+n) = f(m)+f(n).
\end{align*}
For scalar multiplication, let $r \in R$. If $m_i=0$, then $rm_i=0$, so $\operatorname{supp}(rm) \subseteq \operatorname{supp}(m)$. This lets us write
\begin{align*}
f(rm) = \sum_{i \in \operatorname{supp}(m)} f_i(rm_i).
\end{align*}
Now use $R$-linearity of each $f_i$:
\begin{align*}
f(rm) = \sum_{i \in \operatorname{supp}(m)} r f_i(m_i).
\end{align*}
Finally, distributivity of scalar multiplication over finite sums in $N$ gives
\begin{align*}
f(rm) = r \sum_{i \in \operatorname{supp}(m)} f_i(m_i) = r f(m).
\end{align*}
So the constructed map is additive and $R$-linear.
[/guided]
[/step]
[step:Check that the induced map restricts to each prescribed component map]
Fix $j \in I$ and $a \in M_j$. The canonical inclusion $\iota_j: M_j \to \bigoplus_{i \in I} M_i$ sends $a$ to the family whose $j$-th coordinate is $a$ and whose $i$-th coordinate is $0$ for every $i \ne j$.
If $a \ne 0$, then $\operatorname{supp}(\iota_j(a))=\{j\}$, so the defining formula for $f$ gives
\begin{align*}
f(\iota_j(a)) = f_j(a).
\end{align*}
If $a=0$, then $\operatorname{supp}(\iota_j(a))=\varnothing$, so $f(\iota_j(a))=0_N$ by the empty-sum convention, while $f_j(a)=f_j(0)=0_N$ because $f_j$ is $R$-linear. Thus $f(\iota_j(a))=f_j(a)$ in all cases. Since this holds for every $a \in M_j$, we have $f \circ \iota_j = f_j$. Since $j \in I$ was arbitrary, $f \circ \iota_i = f_i$ for every $i \in I$.
[/step]
[step:Prove uniqueness from finite decompositions into canonical inclusions]
Let
\begin{align*}
g: \bigoplus_{i \in I} M_i \to N
\end{align*}
be an $R$-[linear map](/page/Linear%20Map) satisfying $g \circ \iota_i = f_i$ for every $i \in I$. Let $m=(m_i)_{i \in I} \in \bigoplus_{i \in I} M_i$, and set $S:=\operatorname{supp}(m)$. Since $S$ is finite, the element $m$ decomposes in the direct sum as
\begin{align*}
m = \sum_{i \in S} \iota_i(m_i).
\end{align*}
Applying the additivity of $g$ to this finite sum gives
\begin{align*}
g(m) = \sum_{i \in S} g(\iota_i(m_i)).
\end{align*}
Using $g \circ \iota_i = f_i$ for every $i \in I$, we obtain
\begin{align*}
g(m) = \sum_{i \in S} f_i(m_i) = f(m).
\end{align*}
Thus $g(m)=f(m)$ for every $m \in \bigoplus_{i \in I} M_i$, so $g=f$. Hence the $R$-linear map $f$ constructed above is unique.
[/step]