The deal is for $4.25 million per season, a huge raise over the league minimum $450,000 Penner earned last season in the last year of his entry-level contract.
The Ducks have seven days to match the offer. Should they decide not to match, the Ducks would receive one first-round draft pick, a second-round pick and a third-round pick from the Oilers.
Anaheim confirmed the offer sheet but declined to comment, a team spokesman said.
Oilers general manager Kevin Lowe went after a team that doesn't have much room under the salary cap. The Stanley Cup champion Ducks are around $48 million. The Penner signing would push the Ducks over the $50.3 million maximum, but a team is allowed to be over the salary cap by 10 percent until Oct. 1.
It is the second time this summer that the Oilers have gone after a restricted free agent. The Oilers failed to get Thomas Vanek of the Buffalo Sabres earlier this month when the Sabres matched Edmonton's seven-year, $50 million offer.
The 24-year-old Penner had 45 points (29 goals, 16 assists) in 82 regular-season games while adding eight points in 21 playoff games for the Ducks.