【发布时间】:2013-10-21 08:44:50
【问题描述】:
我正在开发一个小型邮件客户端,并依靠 SendGrid 发送电子邮件。但是,我无法正确接收电子邮件。 SendGrid 将电子邮件发布到一个 url,然后我尝试使用 JsonNode 解析它,但问题是电子邮件的文本没有按预期出现(法语/德语字符出现奇怪的字符)。有没有人成功使用 SendGrid 在 Java 中接收来自 SendGrid 的电子邮件?谢谢!
这在 Java 中是行不通的(参见下面的 cmets),但是我找到了一种使用 Ruby 的方法。这意味着我必须以某种方式从我的 Java 代码中调用一个 ruby 脚本并取回正确解析的电子邮件。有人可以就如何做到这一点给出一些提示吗?我正在考虑以某种方式从 Ruby 连接到 POST url,从表单中检索电子邮件并解析它。我怎样才能做到这一点?我对 Ruby 的了解非常有限。谢谢!
【问题讨论】:
-
您能否详细说明您的应用接收到的字符。一个例子会很棒。你还在使用 Tomcat 还是类似 jetty 的东西?
-
所以我正在尝试通过从我的 gmail 帐户发送电子邮件来测试应用程序。如果我将 gmail 设置为使用 utf-8,一切都很好,当我从我的应用程序中阅读电子邮件时,字符会正确显示。但如果我不这样做,那么当我实际发送“Zürich”时,我会收到一些错误/奇怪的字符,例如“Z�rich”。收到电子邮件后,SendGrid 将电子邮件发布到一个 url,然后我通过 DynamicForm(导入 play.data.DynamicForm)在我的应用程序中阅读它。我检查了消息的字符集,在这种情况下它是 ISO-8859-1,但是从表单中我已经得到了一个 Java 字符串。
-
恐怕这已经破坏了向 UTF-8 的可能转换。你怎么看?
-
为什么不能转换字符串?
String s = "some text here";byte[] b = s.getBytes("UTF-8");s = new String(b, "US-ASCII"); -
我发现它不起作用,因为当我从发布的表单中获取第一个字符串时,字节数组已经使用默认的 java 字符串编码进行了更改。