Sätt ugnen på 180 grader. Skala och finhacka lök och vitlök. Fräs löken tillsammans med spenaten, ställ åt sidan och låt kallna.
Förbered undertiden bechamelsåsen och tomatsåsen.
Bechamel: Gör en bottenredning på mjöl och smör, det vill säga fräs mjölet i smöret och rör till en jämn smet. Häll i mjölken och grädden lite i taget och låt koka ihop under omrörning. Smaka av med socker, salt och peppar.
Tomatsås: Finhacka lök och vitlök. Fräs i hälften av olivoljan så det tar lite färg. Tillsätt sockret och fräs en stund till. Häll i tomaterna, koka 5-8 minuter och smaka av med salt och svartpeppar. Rör avslutningsvis i resten av olivoljan och den strimlade basilikan.
Skär det kalla spenatfräset fint och blanda med ricottan. Droppa i lite olivolja, salta, peppra och blanda till en jämn smet.
Skär till pastaplattorna så de blir 12x15 cm. Lägg lite ricottaröra som en tjock sträng på kortsidan av pastaplattan och rulla ihop den till ett rör. Vispa upp äggulan och pensla på den för att limma ihop den lösa ändan av rullen.
Häll hälften av bechamelsåsen i botten av en ugnsfast form. Lägg på cannelonirören i rad bredvid varandra. Täck med resten av bechamelsåsen och avsluta med en sträng tomatsås.
Riv över mozzarellan och grädda i mitten av ugnen på 180 grader, cirka 15-18 minuter.