2013-09-08 14 views
0

Извините за запутанное название. У меня есть приложение, и я хочу, чтобы мои пользователи присылали мне отзывы. Мне нужно что-то, что не слишком причудливо, просто текстовое поле, в котором пользователь может ввести и нажать кнопку, чтобы отправить сообщение на учетную запись электронной почты, которую я настроил для обратной связи. Я хочу, чтобы пользователь мог это сделать без использования каких-либо своих учетных записей электронной почты или другой учетной записи. Могу ли я использовать что-то вроде JSON для отправки отзыва?Отправка электронной почты без адреса электронной почты?

+0

Отправьте текстовый текст в php-скрипт, который затем пересылает почту на ваш почтовый ящик. –

ответ

0

Вы можете разрешить пользователям отправлять отзывы с помощью основной проверки валидации электронной почты. Эта часть кода работает на уровне API 8 и выше. При нажатии кнопки «Отправить» просто выполните эту основную проверку по электронной почте

public boolean checkEmail(String email) { 
    try { 
     return android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches(); 

    } catch (Exception e) { 
     Logging.e(TAG, "Email Validation", "Error: "+e.getMessage(),e); 

    } 
    return false; 
} 

Если валидация верна. Затем введите введенный идентификатор электронной почты и текстовое содержимое из текста редактирования и создайте URL-адрес post и проверьте ответ, если это HttpStatus.SC_OK.if он возвращает ok, после чего после выполнения вызова вызовите метод в своей активности, используя прослушиватель, чтобы показать всплывающее окно, в котором была успешно отправлена ​​обратная связь. Чтобы опубликовать URL-адрес и проверить ответ. Введите URL-адрес в фоновом режиме и передайте URL-адрес этому методу, где-то ваш класс Utils, чтобы вернуть ответ.

public static boolean sendRequestOnly(String url) { 




    DefaultHttpClient client = returnHttpClient(); 

    HttpGet getRequest = new HttpGet(url); 

    try { 

     HttpResponse resp = client.execute(getRequest); 
     final int statusCode = resp.getStatusLine().getStatusCode(); 

     if (statusCode == HttpStatus.SC_OK) { 
      Logging.d("ClassName", "Retreive response", "Status Code " 
        + statusCode + " for URL " + url); 
      return true; 
     } else { 
      return false; 
     } 

    } catch (IOException e) { 
     getRequest.abort(); 

    } 

    return false; 

} 
+0

Думаю, я поеду с этим. Это полезно. У меня есть несколько разъяснений. Я просто хочу, чтобы он мог отправить мне свой адрес электронной почты. Итак, в методе checkEmail я бы передал строку с моим адресом электронной почты? как String email = "[email protected]" ?? –

+0

Также вы можете уточнить, какой URL-адрес я передаю методу sendRequestOnly? Я не совсем понял, что вы подразумеваете под «рамкой почтового URL», где именно я отправляю сообщение на мой адрес электронной почты? –

+0

checkEmail Метод будет принимать введенный пользователем идентификатор почты. Этот идентификатор почты проверяется. Вы создадите URL-адрес, в котором вы будете отправлять текстовое содержимое электронной почты и другие параметры. Этот URL-адрес будет отправлен методу sendRequestOnly. – khubaib

0

Вы можете использовать GCM (сообщение Google cloud). Вы можете найти код here.

+0

Нужен ли мне сервер для этого для восходящих сообщений? –

+0

Да. Вы должны. Все упоминается в документе. –

0

Чтобы создать ссылку, используйте этот метод. Отправленная обратная связь должна дозвониться до вас?

String url = "https://blablabla.net/"; 
    StringBuilder sbUrl = new StringBuilder("feedback.jsp?email="); 
    sbUrl.append(emailId); 
    sbUrl.append("&content="); 
    sbUrl.append(textContent); 
    sbUrl.append("&subject="); 
    sbUrl.append(subject); 
    sbUrl.append("&os_version="); 
    sbUrl.append(OptimumConstants.OS_VERSION); 

// если вы хотите userId.Person, который послал вам обратную связь и т.д. sbUrl.append ("& user_id ="); sbUrl.append (settings.getString ( SomeConstants.LOGGED_IN_USERNAME, "")); // здесь вы можете добавить какие-либо другие запросы urlparams, такие как идентификатор устройства, тип устройства, версия os и т. Д., Только если вы хотите получить всю эту информацию sbUrl.append («&» + Utils.FewOtherRLParams); url + = sbUrl.toString();

boolean resp= Utils.sendRequestOnly(url); 

    return resp; 
+0

Большое спасибо за вашу поддержку. Для строкового URL-адреса какой веб-сайт идет туда? Может ли это быть String url = "[email protected]" и что я могу добавить в "feedback.jsp?«whats is feedback.jsp? Должен ли я реализовать это? –

0

Этот метод предназначен для таймаута по умолчанию, когда в соединении есть проблема, например, время ожидания подключения или таймаут соединения.

  public static DefaultHttpClient returnHttpClient() { 
    HttpParams httpParameters = new BasicHttpParams(); 
    // Set the timeout in milliseconds until a connection is established. 
    // The default value is zero, that means the timeout is not used. 
    int timeoutConnection = 60000; 
    HttpConnectionParams.setConnectionTimeout(httpParameters, 
      timeoutConnection); 
    // Set the default socket timeout (SO_TIMEOUT) 
    // in milliseconds which is the timeout for waiting for data. 
    int timeoutSocket = 600000; 
    HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket); 

    return new DefaultHttpClient(httpParameters); 
} 
+0

хорошо, спасибо. Можете ли вы сказать мне, где я должен построить строковый URL-адрес? –

Смежные вопросы