| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 | 
							- <?php
 
- /**
 
-  * @file
 
-  * MailSystemInterface for logging mails to the filesystem.
 
-  *
 
-  * To enable, save a variable in settings.php (or otherwise) whose value
 
-  * can be as simple as:
 
-  *
 
-  * $conf['mail_system'] = array(
 
-  *   'default-system' => 'DevelMailLog',
 
-  *);
 
-  *
 
-  * Saves to temporary://devel-mails dir by default. Can be changed using
 
-  * 'devel_debug_mail_directory' variable. Filename pattern controlled by
 
-  * 'devel_debug_mail_file_format' variable.
 
-  *
 
-  */
 
- class DevelMailLog extends DefaultMailSystem {
 
-   public function composeMessage($message) {
 
-     $mimeheaders = array();
 
-     $message['headers']['To'] = $message['to'];
 
-     foreach ($message['headers'] as $name => $value) {
 
-       $mimeheaders[] = $name . ': ' . mime_header_encode($value);
 
-     }
 
-     $line_endings = variable_get('mail_line_endings', MAIL_LINE_ENDINGS);
 
-     $output = join($line_endings, $mimeheaders) . $line_endings;
 
-     // 'Subject:' is a mail header and should not be translated.
 
-     $output .= 'Subject: ' . $message['subject'] . $line_endings;
 
-     // Blank line to separate headers from body.
 
-     $output .= $line_endings;
 
-     $output .= preg_replace('@\r?\n@', $line_endings, $message['body']);
 
-     return $output;
 
-   }
 
-   public function getFileName($message) {
 
-     $output_directory = $this->getOutputDirectory();
 
-     $this->makeOutputDirectory($output_directory);
 
-     $output_file_format = variable_get('devel_debug_mail_file_format', '%to-%subject-%datetime.mail.txt');
 
-     $tokens = array(
 
-       '%to' => $message['to'],
 
-       '%subject' => $message['subject'],
 
-       '%datetime' => date('y-m-d_his'),
 
-     );
 
-     return $output_directory . '/' . $this->dirify(str_replace(array_keys($tokens), array_values($tokens), $output_file_format));
 
-   }
 
-   private function dirify($string) {
 
-     return preg_replace('/[^a-zA-Z0-9_\-\.@]/', '_', $string);
 
-   }
 
-   /**
 
-    * Save an e-mail message to a file, using Drupal variables and default settings.
 
-    *
 
-    * @see http://php.net/manual/en/function.mail.php
 
-    * @see drupal_mail()
 
-    *
 
-    * @param $message
 
-    *   A message array, as described in hook_mail_alter().
 
-    * @return
 
-    *   TRUE if the mail was successfully accepted, otherwise FALSE.
 
-    */
 
-   public function mail(array $message) {
 
-     $output = $this->composeMessage($message);
 
-     $output_file = $this->getFileName($message);
 
-     return file_put_contents($output_file, $output);
 
-   }
 
-   protected function makeOutputDirectory($output_directory) {
 
-     if (!file_prepare_directory($output_directory, FILE_CREATE_DIRECTORY)) {
 
-       throw new Exception("Unable to continue sending mail, $output_directory is not writable");
 
-     }
 
-   }
 
-   public function getOutputDirectory() {
 
-     return variable_get('devel_debug_mail_directory', 'temporary://devel-mails');
 
-   }
 
- }
 
- ?>
 
 
  |