diff --git a/td/telegram/MessageEntity.cpp b/td/telegram/MessageEntity.cpp index dae0fddd..b1190056 100644 --- a/td/telegram/MessageEntity.cpp +++ b/td/telegram/MessageEntity.cpp @@ -1011,6 +1011,8 @@ vector> find_urls(Slice str) { for (auto url : match_urls(str)) { if (is_email_address(url)) { result.emplace_back(url, true); + } else if (begins_with(url, "mailto:") && is_email_address(url.substr(7))) { + result.emplace_back(url.substr(7), true); } else { url = fix_url(url); if (!url.empty()) { diff --git a/test/message_entities.cpp b/test/message_entities.cpp index 6be3b1f7..d40127b8 100644 --- a/test/message_entities.cpp +++ b/test/message_entities.cpp @@ -515,6 +515,7 @@ TEST(MessageEntities, url) { check_url("", {"http://www.ics.uci.edu/pub/ietf/uri/historical.html#WARNING"}); check_url("Look :test@example.com", {":test@example.com"}, {}); // TODO {}, {"test@example.com"} + check_url("Look mailto:test@example.com", {}, {"test@example.com"}); check_url("http://test.com#a", {"http://test.com#a"}); check_url("http://test.com#", {"http://test.com#"}); check_url("http://test.com?#", {"http://test.com?#"});