有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在安卓中尝试使用Mandrill SMTP发送电子邮件时出现java错误

当运行我的应用程序时,我正在使用Android Studio 1.2,API Mandrill响应出现此错误

{"status":"error","code":-1,"name":"ValidationError","message":"You must specify a message value"}

当我检查我的对象paramsArr时,它看起来没问题,但我认为可能是我遗漏了一些属性,或者我的paramsArr没有正确的结构

这是paramsArr的结构:

[{"key":"mykey","message":[{"html":"ghgh","text":"test","to":[{"email":"mymail@gmail.com","name":"person","type":"to"}],"from_email":"mymail@gmail.com","from_name":"person","subject":"erer"}],"async":false}]

格拉德尔:

compileSdkVersion 21
buildToolsVersion '22.0.1'  
minSdkVersion 16
targetSdkVersion 21

AndroidManifest。xml:

<uses-permission 安卓:name="安卓.permission.INTERNET" />
<uses-permission 安卓:name="安卓.permission.ACCESS_NETWORK_STATE" /> 

发送电子邮件的功能

public void SendEmail(View view) {

                    try {


                        JSONArray paramsArr = new JSONArray();

                        JSONArray paramsArr1 = new JSONArray();
                        JSONArray paramsArr2 = new JSONArray();

                        JSONObject object = new JSONObject();
                        object.put("key", "mykey");


                        JSONObject arrayElementTo = new JSONObject();
                                         arrayElementTo.put("email","mymail@gmail.com");
                        arrayElementTo.put("name", "person");
                        arrayElementTo.put("type", "to");

                        paramsArr1.put(arrayElementTo);


                        JSONObject arrayElementMessage = new JSONObject();
                        arrayElementMessage.put("html", "ghgh");
                        arrayElementMessage.put("text", "test");
                        arrayElementMessage.put("to",paramsArr1);
                        arrayElementMessage.put("from_email", "mymail@gmail.com");
                        arrayElementMessage.put("from_name", "person");
                        arrayElementMessage.put("subject", "erer");



                        paramsArr2.put(arrayElementMessage);
                        object.put("message",paramsArr2);

                        object.put("async", false);


                        paramsArr.put(object);


                        HttpClient httpclient = new DefaultHttpClient();
                        HttpPost httppost = new HttpPost("https://mandrillapp.com/api/1.0/messages/send.json");

                        StringEntity params = new StringEntity(paramsArr.toString());


                        httppost.setHeader("Content-type", "application/json");
                        httppost.setEntity(params);

                        HttpResponse response = httpclient.execute(httppost);

                        HttpEntity entity = response.getEntity();
                        String responseString = EntityUtils.toString(entity, "UTF-8");


                    }catch (Exception e){

                        Toast toast = Toast.makeText(getApplicationContext(), "error",
                                Toast.LENGTH_SHORT);

                        toast.show();

                    }


    }

共 (1) 个答案

  1. # 1 楼答案

    问题出在我的参数json[{"key":"mykey","message":[{"html":"ghgh","text":"test","to":[{"email":"mymail@gmail.com","name":"person","type":"to"}],"from_email":"mymail@gmail.com","from_name":"person","subject":"erer"}],"async":false}]的结构中

    正确的结构是

    {"key":"mykey","message":{"html":"ghgh","text":"test","to":[{"email":"mymail@gmail.com","name":"person","type":"to"}],"from_email":"mymail@gmail.com","from_name":"person","subject":"erer"},"async":false}
    

    使用此功能,您可以使用此服务从android发送和发送电子邮件,我测试过,效果良好