[step:Embed an arbitrary left $R$-module into a product of coinduced injectives]
Let $M$ be a left $R$-module. Define the abelian group
\begin{align*}
M^\vee:=\operatorname{Hom}_{\mathbb{Z}}(M,D).
\end{align*}
Let $E$ be the product of copies of $E_0=\operatorname{Hom}_{\mathbb{Z}}(R,D)$ indexed by the set $M^\vee$:
\begin{align*}
E:=\prod_{\lambda\in M^\vee}E_0.
\end{align*}
We give $E$ the product left $R$-module structure.
The product $E$ is injective. Indeed, if $A\hookrightarrow B$ is a monomorphism of left $R$-modules, then applying $\operatorname{Hom}_R(-,E)$ gives
\begin{align*}
\operatorname{Hom}_R(B,E)
&\cong \prod_{\lambda\in M^\vee}\operatorname{Hom}_R(B,E_0),\\
\operatorname{Hom}_R(A,E)
&\cong \prod_{\lambda\in M^\vee}\operatorname{Hom}_R(A,E_0).
\end{align*}
Since each $E_0$ is injective by the preceding step, every component map $\operatorname{Hom}_R(B,E_0)\to \operatorname{Hom}_R(A,E_0)$ is surjective; hence their product is surjective. Thus every left $R$-module homomorphism $A\to E$ extends across $A\hookrightarrow B$, so $E$ is injective.
Define
\begin{align*}
\iota:M&\to E\\
m&\mapsto (\iota_\lambda(m))_{\lambda\in M^\vee},
\end{align*}
where, for each $\lambda\in M^\vee$,
\begin{align*}
\iota_\lambda(m):R&\to D\\
s&\mapsto \lambda(sm).
\end{align*}
For each $m\in M$ and $\lambda\in M^\vee$, the map $\iota_\lambda(m):R\to D$ is an abelian group homomorphism, so $\iota_\lambda(m)\in E_0$. The map $\iota$ is left $R$-linear because for $r\in R$, $m\in M$, $\lambda\in M^\vee$, and $s\in R$,
\begin{align*}
\iota_\lambda(rm)(s)
&=\lambda(srm)\\
&=\iota_\lambda(m)(sr)\\
&=(r\iota_\lambda(m))(s).
\end{align*}
We show that $\iota$ is injective. Let $m\in M$ with $m\neq 0$. Since $D$ is a cogenerator of abelian groups, there exists an abelian group homomorphism $\lambda:M\to D$ such that $\lambda(m)\neq 0$. This $\lambda$ is an element of $M^\vee$, and the $\lambda$-component of $\iota(m)$ satisfies
\begin{align*}
\iota_\lambda(m)(1_R)=\lambda(1_Rm)=\lambda(m)\neq 0.
\end{align*}
Hence $\iota(m)\neq 0$, so $\ker \iota=0$. Thus $\iota:M\to E$ is an injective $R$-[linear map](/page/Linear%20Map) into an injective left $R$-module.
[/step]