【问题标题】:Java - SendGrid Parse API in JavaJava - Java 中的 SendGrid 解析 API
【发布时间】: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 字符串编码进行了更改。

标签: java ruby http sendgrid


【解决方案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);

【讨论】:

  • 谢谢! Ruby 中有没有办法连接到 url 并获取发布到该 url 的数据?这基本上是我在 Ruby 脚本中必须要做的。
猜你喜欢
  • 2019-05-17
  • 1970-01-01
  • 2018-04-01
  • 2018-07-24
  • 1970-01-01
  • 2011-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多