Error - Subject value must be composed of printable US-ASCII or UTF-8 characters

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • dimyy
    Active Community Member
    • Jun 2018
    • 569

    Error - Subject value must be composed of printable US-ASCII or UTF-8 characters

    Subject Example:
    [2018-10-25 15:04:03] Espo.WARNING: Subject: |||
    Post: [Задача] Проверить доступ к внешним сайтам
    ||| [] []
    [2018-10-25 15:04:03] Espo.ERROR: EmailNotification: [0] Subject value must be composed of printable US-ASCII or UTF-8 characters. [] []

    Any sugestions?

    Additional subject examples:
    Post: [Задача] Проблемы с почтой
    Post: [Задача] Автоответчик. Переход звонка
    Закрыто: [Обращение] Fwd: team для настройки VPN
  • tanya
    Senior Member
    • Jun 2014
    • 4308

    #2
    The reminder of calls and meetings by mail does not work. The cronjob is executed successfully. Outgoing mail is created. What else can it be?

    Comment

    • dimyy
      Active Community Member
      • Jun 2018
      • 569

      #3
      It the right answer is: create ru_RU templates?

      Comment

      • tanya
        Senior Member
        • Jun 2014
        • 4308

        #4
        At first check default_charset in phpini
        After you can modify needed files. Also check file charset

        Comment

        • dimyy
          Active Community Member
          • Jun 2018
          • 569

          #5
          Unfortunately you are not right.

          Problem is in old version of zend-mail included in distrib.

          Old version of function

          public static function canBeEncoded($value)
          {
          $encoded = iconv_mime_encode('x-test', $value, ['scheme' => 'Q']);

          return (false !== $encoded);
          }

          on string 'Post: [Задача] Расширить права на ПК' return wrong answer, but fresh function from zend-mail (https://github.com/zendframework/zen...rWrap.php#L140)

          public static function canBeEncoded($value)
          {
          // avoid any wrapping by specifying line length long enough
          // "test" -> 4
          // "x-test: =?ISO-8859-1?B?dGVzdA==?=" -> 33
          // 8 +2 +3 +3 -> 16
          $charset = 'UTF-8';
          $lineLength = strlen($value) * 4 + strlen($charset) + 16;
          $preferences = [
          'scheme' => 'Q',
          'input-charset' => $charset,
          'output-charset' => $charset,
          'line-length' => $lineLength,
          ];
          $encoded = iconv_mime_encode('x-test', $value, $preferences);
          return (false !== $encoded);
          }

          return correct answer.

          Please update zend-mail package (or maybe zendframework) to fix errors.
          Last edited by dimyy; 11-28-2018, 08:12 AM.

          Comment

          • yuri
            Member
            • Mar 2014
            • 8552

            #6
            Usually when we update zend mail it brings about tons of new bugs. We planned to release this week and don't want to hold it off again. Maybe we could change only this one function,
            If you find EspoCRM good, we would greatly appreciate if you could give the project a star on GitHub. We believe our work truly deserves more recognition. Thanks.

            Comment

            • dimyy
              Active Community Member
              • Jun 2018
              • 569

              #7
              Now I change only this function and wait results. After 3-5 days I report here test results

              Comment

              • dimyy
                Active Community Member
                • Jun 2018
                • 569

                #8

                After a week, everything is fine. No more "Subject value must be composed of printable US-ASCII or UTF-8 characters" errors. The reason is the old "canBeEncoded" function.

                Comment

                Working...