/**
* @param object $participation
* @return void
* @throws \Exception
*/
public function sendEmail($participation)
{
$email = $participation->getEmail();
$emailDomain = trim(strtolower(preg_replace('/^[^@]+@/', '', $email)));
$participation->setEmailDomain($emailDomain);
$participation->save();
$confirmationLink = $this->createConfirmationLink($participation->getConfirmationCode());
$parameters = array('confirmationLink' => $confirmationLink, 'participationId' => $participation->getId());
$emailDocumentPath = Plugin::getConfig()->get('emailDocumentPath');
$emailDocument = DocumentModel::getByPath($emailDocumentPath);
if (!$emailDocument instanceof EmailDocument) {
throw new \Exception("Error: emailDocumentPath [{$emailDocumentPath}] " . "is not a valid email document.");
}
$mail = new Mail();
$mail->addTo($email);
if ($this->getSubject()) {
$mail->setSubject($this->getSubject());
}
$mail->setDocument($emailDocumentPath);
$mail->setParams($parameters);
$mail->send();
$note = new Note();
$note->setElement($participation);
$note->setDate(time());
$note->setType("confirmation");
$note->setTitle("Email sent");
$note->addData("email", "text", $email);
$note->setUser(0);
$note->save();
}