我创建了一些代码,用于将html电子邮件通过电子邮件发送到指定地址。该电子邮件包含以下链接:
<a href="crystalcloud://android?4567">Click to validate account</a>
我通过将其发送到我的Gmail帐户进行测试。出于某种原因,当我收到电子邮件时,它不会让我点击链接。如果我将此链接放在网页中,我的应用程序就可以正常启动。
为了让这个链接显示在电子邮件中,还是gmail阻止这些链接,我有什么特别的事吗?无论如何在gmail中解决这个问题?
编辑:添加了我的代码片段
发送链接的代码:
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(emailAddress));
message.setSubject("New Crystal Cloud User");
message.setContent("Thank you for creating a new Crystal Cloud account!<br><a href=\"crystalcloud://android?4567">Click to validate account</a>", "text/html; charset=utf-8");
Transport transport = session.getTransport("smtp");
transport.connect(host, from, pass);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
响应意图的Android代码:
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="crystalcloud" />
</intent-filter>
答案 0 :(得分:15)
这是Android电子邮件客户端的问题,除非他们是http或https,否则他们不会将链接显示为可点击。
我的解决方案是使用http方案打开我的应用程序:
<data android:scheme="http" android:host="com.company.app" android:port="3513" />
这很有效,但很烦人,因为它会提示用户在浏览器或应用程序中打开应用程序。 另一个解决方案是拥有一个指向网站的链接,然后将javascript重定向到您的应用,尽管这会导致更多问题。
答案 1 :(得分:0)
在您的邮件标题中放入Content-Type: text/html
,表示内容是HTML格式,表示邮件是以HTML格式显示的。然后邮件客户端将适当地呈现HTML。它也有助于将链接括在<html></html>
块中。
答案 2 :(得分:0)
我终于面临同样的问题我得到了解决方案。您可以共享文本以及链接
String link_val = "http://play.google.com/store/apps/details?id=" + MainActivity.this.getPackageName();
String body = "<a href=\"" + link_val + "\">" + link_val + "</a>";
String data = "Hello I am using this App.\nIt has large numbers of Words meaning with synonyms.\nIts works offline very smoothly.\n\n" + body;
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, Html.fromHtml(data));