示例#1
0
 /**
  * @param Mail\Message $mail
  */
 public function send(Mail\Message $mail)
 {
     $this->autoremove();
     list($sec) = explode(' ', substr(microtime(), 2));
     $this->lastFile = $this->path . date('Y-m-d_H-i-s-') . $sec . '.eml';
     file_put_contents($this->lastFile, $mail->generateMessage());
 }
示例#2
0
 /**
  * Log mail messages to eml file
  * @param  string $type
  * @param  string $text
  * @return void
  */
 public function log($type, Nette\Mail\Message $mail)
 {
     $timestamp = date('Y-m-d H:i:s');
     $type .= '.' . time();
     $file = $this->getLogFile($type, $timestamp);
     if (file_exists($file) && filesize($file)) {
         $file = str_replace(static::LOG_EXTENSION, '.' . uniqid() . static::LOG_EXTENSION, $file);
     }
     file_put_contents($file, $mail->generateMessage());
 }
示例#3
0
 /**
  * Store mail to file.
  * @param  Message $message
  * @return int
  */
 public function send(Message $message)
 {
     $content = $message->generateMessage();
     preg_match('~Message-ID: <(?<message_id>\\w+)[^>]+>~', $content, $matches);
     $path = $this->tempDir . '/' . $this->prefix . $matches['message_id'] . '.' . self::FILE_EXTENSION;
     if (($bytes = file_put_contents($path, $content)) === FALSE) {
         throw new InvalidStateException("Unable to write email to '{$path}'.");
     }
     return $bytes;
 }
示例#4
0
文件: FileMailer.php 项目: Ryby/Mail
 /**
  * Store mails to files.
  * @param Message $message
  */
 public function send(Message $message)
 {
     $this->checkRequirements();
     $content = $message->generateMessage();
     preg_match('/Message-ID: <(?<message_id>\\w+)[^>]+>/', $content, $matches);
     $path = $this->tempDir . '/' . $this->prefix . $matches['message_id'];
     if ($this->extension) {
         $path .= '.' . $this->extension;
     }
     $bytes = file_put_contents($path, $content);
     if ($bytes) {
         return $bytes;
     } else {
         throw new InvalidStateException("Unable to write email to '{$path}'");
     }
 }
示例#5
0
 /**
  * Sends email.
  * @param  Message
  * @return void
  */
 public function send(Message $mail)
 {
     $data = $mail->generateMessage();
     $this->connect();
     $from = $mail->getHeader('From');
     if ($from) {
         $from = array_keys($from);
         $this->write("MAIL FROM:<{$from['0']}>", 250);
     }
     foreach (array_merge((array) $mail->getHeader('To'), (array) $mail->getHeader('Cc'), (array) $mail->getHeader('Bcc')) as $email => $name) {
         $this->write("RCPT TO:<{$email}>", array(250, 251));
     }
     $this->write('DATA', 354);
     $data = preg_replace('#^\\.#m', '..', $data);
     $this->write($data);
     $this->write('.', 250);
     $this->write('QUIT', 221);
     $this->disconnect();
 }
示例#6
0
 /**
  * saves email to log file
  * @param Message $mail
  * @return string file name
  */
 public function send(Message $mail)
 {
     $name = $this->dir . '/' . 'email_' . microtime(TRUE) . '.eml';
     file_put_contents($name, $mail->generateMessage());
     return $name;
 }
示例#7
0
__construct(array$options=array()){if(isset($options['host'])){$this->host=$options['host'];$this->port=isset($options['port'])?(int)$options['port']:NULL;}else{$this->host=ini_get('SMTP');$this->port=(int)ini_get('smtp_port');}$this->username=isset($options['username'])?$options['username']:'';$this->password=isset($options['password'])?$options['password']:'';$this->secure=isset($options['secure'])?$options['secure']:'';$this->timeout=isset($options['timeout'])?(int)$options['timeout']:20;if(!$this->port){$this->port=$this->secure==='ssl'?465:25;}}function
send(Message$mail){$data=$mail->generateMessage();$this->connect();$from=$mail->getHeader('From');if($from){$from=array_keys($from);$this->write("MAIL FROM:<$from[0]>",250);}foreach(array_merge((array)$mail->getHeader('To'),(array)$mail->getHeader('Cc'),(array)$mail->getHeader('Bcc'))as$email=>$name){$this->write("RCPT TO:<$email>",array(250,251));}$this->write('DATA',354);$data=preg_replace('#^\.#m','..',$data);$this->write($data);$this->write('.',250);$this->write('QUIT',221);$this->disconnect();}private
示例#8
0
 /**
  * Sends e-mail.
  *
  * Implementation of IMailer
  * @param  Message The mail to send (instance of Nette\Message)
  * @return void
  *
  * @throws InvalidStateException if something went wrong
  */
 function send(\Nette\Mail\Message $mail)
 {
     $from = $mail->getHeader('From');
     //intentionally !=
     $from = $from != NULL && !empty($from) ? array_keys($from) : NULL;
     if ($from !== NULL) {
         $this->client->setFrom($from[0]);
     }
     $to = $mail->getHeader('To');
     $cc = $mail->getHeader('Cc');
     $bcc = $mail->getHeader('Bcc');
     $mail->setHeader('Bcc', NULL);
     $recipients = array();
     //intentionally !=
     $to != NULL && !empty($to) ? $recipients = array_merge($recipients, array_keys($to)) : NULL;
     $cc != NULL && !empty($cc) ? $recipients = array_merge($recipients, array_keys($cc)) : NULL;
     $bcc != NULL && !empty($bcc) ? $recipients = array_merge($recipients, array_keys($bcc)) : NULL;
     $this->client->setRecipients($recipients);
     $this->client->setBody($mail->generateMessage());
     //throws InvalidStateException
     $this->client->send();
 }