/** * Generate and store a Plancake Email address * */ public function generateAndStorePlancakeEmailAddress() { do { $truncatedUserEmail = preg_replace('/@.*$/', '', $this->getEmail()); $randomPart = mt_rand(10, 99) . chr(mt_rand(97, 122)) . mt_rand(100, 999); $plancakeEmailAddressWithoutDomain = 'inbox_' . $truncatedUserEmail . '_' . $randomPart; // I double check the email address doesn't exist already $c = new Criteria(); $c->add(PcPlancakeEmailAddressPeer::EMAIL, $plancakeEmailAddressWithoutDomain, Criteria::EQUAL); $entry = PcPlancakeEmailAddressPeer::doSelectOne($c); } while (is_object($entry)); $plancakeEmailDbEntry = new PcPlancakeEmailAddress(); $plancakeEmailDbEntry->setUserId($this->getId())->setEmail($plancakeEmailAddressWithoutDomain)->save(); }