/** * Execute the console command. * * @return mixed */ public function handle() { $url = Url::where('visited', 'no')->first(); while ($url !== false) { $urlText = file_get_contents($url->url); //Obtendo conteúdo da URL //Obtendo as URLs do conteúdo preg_match_all('/<a href=["\']?((?:.(?!["\']?\\s+(?:\\S+)=|[>"\']))+.)["\']?>/i', $urlText, $urlsArr); //Obtendo os E-mails do conteúdo preg_match_all('/\\b[A-Z0-9._%-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}\\b/i', $urlText, $emailsArr); if (isset($urlsArr[1])) { $urlOriginalInfo = parse_url($url->url); //Dividindo as informações da URL foreach ($urlsArr[1] as $urlObtida) { $urlObtidaInfo = parse_url($urlObtida); //Dividindo as informações da URL obtida no conteúdo $scheme = isset($urlObtidaInfo['scheme']) ? $urlObtidaInfo['scheme'] : $urlOriginalInfo['scheme']; $host = isset($urlObtidaInfo['host']) ? $urlObtidaInfo['host'] : $urlOriginalInfo['host']; $novaUrl = $scheme . "://" . $host . $urlObtida; $urlObtidaJaExistente = Url::where('url', $novaUrl)->count(); if (!$urlObtidaJaExistente) { // Não estando, insere a URL $urlNova = new Url(); $urlNova->url = $novaUrl; $urlNova->visited = "no"; $urlNova->save(); } } } if (isset($emailsArr[1])) { foreach ($emailsArr as $emailObtido) { $emailObtidoJaExistente = Email::where('email', $emailObtido)->count(); if (!$emailObtidoJaExistente) { // Não estando, insere o e-mail $emailNovo = new Email(); $emailNovo->email = $emailObtido; $emailNovo->save(); } } } //Alterando a URL visitada para visited => yes $url->visited = "yes"; $url->save(); //Pegando a próxima URL $url = Url::where('visited', 'no')->first(); } }
private function sendMail($update = FALSE) { $users = $this->db->table('user')->fetchAll(); $signature = "\n\n<em>— " . $users[$this->user->getId()]['name'] . '</em>'; $subject = ($update ? 'AKTUALIZACE: ' : '') . $this->inputData['title']; if ($this->inputData['date_end'] instanceof DateTime) { $subject .= ' [konání ' . $this->inputData['date_end']->format('d.m.Y H:i:s') . ']'; } $mail = new Email(); $mail->setSubject($subject)->setFrom(Email::LOCAL_ADDRESS)->setHTMLBody($this->inputData['body'] . $signature); foreach ($users as $user) { $mail->addReplyTo($user['email'], $user['name']); /* $mail->addTo($user['email'], $user['name']); */ } $mail->addTo('*****@*****.**'); $mail->send(); }
public function crawlAjax() { $emails = Email::take(10)->orderBy('id', 'desc')->get(); $emailArr = array(); foreach ($emails as $email) { $emailArr[] = $email->email; } return json_encode($emailArr); }
public function endOfAuction($product) { // priprava na posilani emailu $email_manager = new Model\Email($this->database); // celkova cena $cost = $product->cost + $product->related('bid.id_product')->sum('deposit'); /* --- vyrozumneni pro vyherce aukce --- */ $winners_bid = $this->database->findAll('bid')->where('id_product', $product->id)->order('id DESC')->fetch(); // priprava alertu pro viteze aukce $val['id_user'] = $winners_bid->id_user; $val['id_type_alert'] = 1; $val['added'] = $this->now; $val['visited'] = 0; $val['body'] = 'Vyhráli jste aukci produktu ' . $product->name . ' (id ' . $product->id . '). Cena produktu činí ' . number_format($cost) . ' Kč. Pro další informace k předání produktu kontaktujte ' . $product->user->name . ' (tel: ' . $product->user->phone . ', email: ' . $product->user->email . ').'; // vlozeni alertu pro viteze do db $row = $this->database->insert('alert', $val); // a poslani emailu vitezi aukce $email_manager->sendEmail($winners_bid->user->email, 'end_auction_winner', $product, $winners_bid, $cost, $row->type_alert->name); /* --- vyrozumneni pro zbyle ucastniky aukce --- */ $bids = $this->database->findAll('bid')->where('id_product', $product->id)->group('id_user'); foreach ($bids as $bid) { if ($bid->id_user != $winners_bid->id_user) { // vitez aukce uz informovan byl // uprava alertu $val['id_user'] = $bid->id_user; $val['body'] = 'Aukci produktu ' . $product->name . ' (id ' . $product->id . '), do které jste zasáhli, vyhrál jiný účastník.'; // vlozeni do db $row = $this->database->insert('alert', $val); // a poslani emailu porazenym $email_manager->sendEmail($bid->user->email, 'end_auction_others', $product, $bid, $cost, $row->type_alert->name); } } /* --- vyrozumneni pro zadavatele aukce --- */ $val['id_user'] = $product->id_user; $val['body'] = 'Aukce produktu ' . $product->name . ' (id ' . $product->id . ') je u konce. Výherce aukce je ' . $winners_bid->user->name . ' (tel: ' . $winners_bid->user->phone . ', email: ' . $winners_bid->user->email . '), který produkt koupil za ' . number_format($cost) . ' Kč.'; // vlozeni do db $row = $this->database->insert('alert', $val); // a poslani emailu zadavateli $email_manager->sendEmail($product->user->email, 'end_auction_seller', $product, $winners_bid, $cost, $row->type_alert->name); }
protected function createComponentGrid($name) { $grid = new \App\Grid\Grid($this, $name); $grid->setModel($this->model->getAll()); $grid->addColumn(new Column('name', $this->translator->translate('admin.form.name'))); $grid->addColumn(new Column('subject', $this->translator->translate('admin.email.subject'))); $grid->addColumn(new Column('system_name', $this->translator->translate('admin.form.systemName'))); $grid->addColumn(new Column('id', $this->translator->translate('admin.grid.id'))); $grid->addMenu(new \App\Grid\Menu\Update('edit', $this->translator->translate('admin.form.edit'))); $grid->addMenu(new \App\Grid\Menu\JavascriptWindow('preview', $this->translator->translate('admin.email.preview'))); $grid->addMenu(new \App\Grid\Menu\Delete('delete', $this->translator->translate('admin.grid.delete'))); return $grid; }
/** * Remove the specified resource from storage. * * @param int $id * @return Response */ public function destroy($id) { Email::destroy($id); }