Ticket #859 (closed defeito: fixed)
Substituição de links (url & e-mail) causa problema na visualização do e-mail
Reported by: | rodsouza | Owned by: | rodsouza |
---|---|---|---|
Priority: | média | Milestone: | Expresso 2.0.4 |
Component: | ExpressoMail | Version: | branch 2.0 |
Severity: | Keywords: | links url e-mail visualização problema | |
Cc: | WorkGroup: |
Description
Substituição de links (url & e-mail) causa problema na visualização do e-mail.
As expressões regulares presente no método replace_links da classe class.imap_function.inc.php a muitos casos, além de que em algumas situações as mesmas não conseguem trabalhar em conjunto.
As expressões regulares não trabalham em conjunto, por exemplo, quando uma url possui um e-mail em seu contexto.
Change History
comment:2 Changed 14 years ago by rodsouza
As expressões regulares presente no método replace_links foram altaredas para:
// All links should be moderated and they should only have the attribute 'target="blank"'. $pattern = '/<a[^>]+href="([^>"]+)"[^>]*>(.*)<\/a>/im'; $replacement = '<a href="$1" target="_blank">$2</a>'; $body = preg_replace( $pattern, $replacement, $body ); // Url found in the text and which is not a link yet should be replaced by one. $pattern = '/(^|\w>|[ \(\[])((http(s)?:\/\/)?([\w\d_\-@]{2,}(\.[\w\d~?\/_=&#;\-:@$]+)+))/im'; $replacement = '$1<a href="http$4://$5" target="_blank">$2</a>'; $body = preg_replace( $pattern, $replacement, $body ); // E-mail address in the text should create a new e-mail on ExpressoMail $pattern = '/( |<|<|>)([A-Za-z0-9\.~?\/_=#\-]*@[A-Za-z0-9\.~?\/_=#\-]*)( |>|>|<)/im'; $replacement = '$1<a href="javascript:new_message_to(\'$2\')">$2</a>$3'; $body = preg_replace( $pattern, $replacement, $body ); // If there is an link with a "mailto:" in href attribute, it will changed to create a new e-mail on ExpressoMail. $pattern = '/<a[^>]+href=["\']mailto:([^"]+)["\'][^>]*>([^<]+)<\/a>/im'; $replacement = '<a href="javascript:new_message_to(\'$1\')">$2</a>'; $body = preg_replace( $pattern, $replacement, $body );
comment:3 Changed 14 years ago by rodsouza
Observou-se que após as alterações todas as possíveis url, assim como os endereços de e-mail, são encontrados e a ação desejada é aplicada.
O fator adverso é possíveis cadeias de caracteres que não representam um endereço eletrônico como por exemplo possivel.Se. Essa sentença foi observada em um e-mail que o remetente foi desatento em não colocar o espaço necessário entre as palavras. Outro exemplo é números como 93.07 ou 3200.0000 que são considerados urls.
comment:4 Changed 14 years ago by rodsouza
- Status changed from new to closed
- Resolution set to testing
Alterado a forma de manipular links para a visualização do e-mail.
inc/class.imap_functions.inc.php
Committed revision r1897.
comment:5 Changed 14 years ago by rodsouza
- Priority changed from grave to pequena
Refinamento da expressão regular que busca por URLs no corpo do e-mail.
class.imap_functions.inc.php
Committed revision r2039.
comment:6 Changed 14 years ago by rodsouza
Refinamento da expressão regular que busca por URLs no corpo do e-mail.
Os links não eram substituídos em e-mails no formato texto puro que possuem inadvertidamente tags HTML.
class.imap_functions.inc.php
Committed revision r2041
comment:7 Changed 14 years ago by amuller
r2045 Corrige quebra de formatação em alguns emails, só pelo desculpa pelo comentário da revisão que cometi um equívoco
comment:10 Changed 14 years ago by niltonneto
- Priority changed from pequena to média
- Status changed from closed to reopened
- Version changed from trunk to branch 2.0
- Resolution testing deleted
- Milestone changed from Expresso 2.1 to Expresso 2.0.4
comment:11 Changed 14 years ago by amuller
Por mim ta ok!
comment:12 Changed 14 years ago by niltonneto
- Status changed from reopened to closed
- Resolution set to fixed
Ao realizar testes da modificação do método citado sugiu uma alteração pontual no método get_body_msg quando o e-mail é multipart.