Пример #1
0
 /**
  * メール読み取り
  */
 public static function readMail()
 {
     // 標準入力から読み取り
     $message = new Zend_Mail_Message(array('file' => 'php://stdin'));
     $obj = array();
     // 差出人
     $obj['from'] = self::getMailAddress($message->from);
     // 宛先
     $obj['to'] = self::getMailAddress($message->to);
     // 件名
     if ($message->getHeader('subject')) {
         $obj['subject'] = $message->subject;
     } else {
         $obj['subject'] = '';
     }
     // 本文
     $obj['body'] = $message->getContent();
     // 不正なメールアドレスなので無視
     if (preg_match("/^MAILER\\-DAEMON\\@/i", $obj['from']) || preg_match("/^postmaster\\@/i", $obj['from']) || $obj['from'] === '*****@*****.**' || strlen($obj['from']) === 0 || !preg_match("/.+\\@[a-zA-Z0-9][a-zA-Z0-9\\-\\.]+\\.[a-zA-Z]+\$/", $obj['from'])) {
         exit;
     }
     // 添付ファイル処理
     if ($message->isMultipart()) {
         // 添付ファイル数
         $obj['files'] = $message->countParts() - 1;
         // 添付ファイル
         for ($i = 2; $i <= $message->countParts(); $i++) {
             $obj['files_type_' . ($i - 2)] = $message->getPart($i)->getHeader('content-type');
             $obj['files_body_' . ($i - 2)] = $message->getPart($i)->getContent();
         }
     } else {
         // 添付ファイル数
         $obj['files'] = 0;
     }
     return $obj;
 }
Пример #2
0
 public function testLateFetch()
 {
     $mail = new Zend_Mail_Storage_Mbox(array('filename' => dirname(__FILE__) . '/_files/test.mbox/INBOX'));
     $message = new Zend_Mail_Message(array('handler' => $mail, 'id' => 5));
     $this->assertEquals($message->countParts(), 2);
     $this->assertEquals($message->countParts(), 2);
     $message = new Zend_Mail_Message(array('handler' => $mail, 'id' => 5));
     $this->assertEquals($message->subject, 'multipart');
     $message = new Zend_Mail_Message(array('handler' => $mail, 'id' => 5));
     $this->assertTrue(strpos($message->getContent(), 'multipart message') === 0);
 }