2013-10-21 27 views
0

我正在开发一个小型邮件客户端,并依靠SendGrid发送电子邮件。但是,我无法正确接收电子邮件。 SendGrid发送电子邮件到一个URL,然后我试图解析它使用JsonNode,但问题是电子邮件的文本没有按预期出来(奇怪的字符出来法国/德国字符)。有没有人成功使用SendGrid从Java中的SendGrid接收电子邮件?谢谢!Java - 在Java中的SendGrid解析API

这在Java中无法解决(请参阅下面的注释),但是我找到了一种使用Ruby的方法。这意味着我必须以某种方式从我的Java代码中调用ruby脚本,并找回正确解析的电子邮件。有人可以提供一些关于如何做到这一点的提示吗?我想从Ruby连接到POST URL,从表单中检索电子邮件并解析它。我怎样才能做到这一点?我在Ruby中的知识相当有限。谢谢!

+0

能否详细说明您的应用正在接收的字符。一个例子会很棒。你也使用Tomcat或类似码头? –

+0

所以我试图通过从我的gmail帐户发送电子邮件来测试应用程序。如果我将gmail设置为使用utf-8,那很好,当我从应用程序中读取电子邮件时,字符正确显示。但是,如果我不这样做,那么当我真正发送“苏黎世”时,我会遇到一些错误/奇怪的字符,例如“ZïÂμÂrich”。当收到一封电子邮件时,SendGrid会将电子邮件发送到一个url,并通过DynamicForm(import play.data.DynamicForm)在我的应用程序中读取它。我已经检查了邮件的字符集,在这种情况下它是ISO-8859-1,但是从表单中我已经得到了一个Java字符串。 – franciscb

+0

恐怕已经把UTF-8可能的转换废弃了。你怎么看? – franciscb

回答

1

如果您需要从java运行ruby脚本,您可以使用ProcessBuilder类来完成。

下面是一个简单的例子:http://www.java-tips.org/java-se-tips/java.util/from-runtime.exec-to-processbuilder.html

确保您的Ruby脚本从执行参数读取命令,你应该是好去。

Runtime runtime = Runtime.getRuntime(); 
Process process = runtime.exec('ruby yourscript.rb {"json" : true}'); 
InputStream is = process.getInputStream(); 
InputStreamReader isr = new InputStreamReader(is); 
BufferedReader br = new BufferedReader(isr); 
+1

谢谢!有没有办法在Ruby中连接到一个网址,并获取数据发布到该网址?这基本上是我在Ruby脚本中必须做的。 – franciscb