마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드와 서버와의 통신문제

0 추천

안드로이드에서 웹서버로 정보를 보내 이메일을 보내려고 합니다.

웹 브라우저에서 postURL( ex: http://192.168.0.1/mail.do) 라고 치면 메일이 보내집니다

그런데 아래 소스처럼 하고 안드로이드에서 실행하면 서버에 접속을 안하는지 서버화면도 아무 변화가 없습니다.

안드로이드쪽 로그를 보면 에러도 안나오고 끝까지 작동합니다.

왜서버에서 작동을 안할가요??

-------------------------------------------------------

안드로이드

public String Mail(String subject, String body, String sender) throws Exception{
    Log.d( "==== MailSend Mail ====", "start" ) ;
HttpPost request = makeHttpPost(subject, body, sender, postURL);
HttpClient client = new DefaultHttpClient();
ResponseHandler<String> reshandler = new BasicResponseHandler();
String result = client.execute(request, reshandler);
 
Log.d( "==== MailSend Mail ====", "end" ) ;
return result;
 
}
   
private HttpPost makeHttpPost(String subject, String body, String sender , String url) throws Exception {
Log.d( "==== MailSend makeHttpPost ====", "start" ) ;
HttpPost request = new HttpPost(url);
 
Vector<BasicNameValuePair> params = new Vector<BasicNameValuePair>();
params.add(new BasicNameValuePair("title", subject ) ) ; 
       params.add(new BasicNameValuePair("content", body ) ) ;
       params.add(new BasicNameValuePair("email", sender ) ) ;
 
request.setEntity(makeEntity(params));
Log.d( "==== MailSend makeHttpPost ====", "end" ) ;
return request;
}
 
private HttpEntity makeEntity(Vector<BasicNameValuePair> params) throws Exception {
Log.d( "==== MailSend makeEntity ====", "start" ) ;
HttpEntity result = null;
try {
result = new UrlEncodedFormEntity(params, "euc-kr");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
Log.d( "==== MailSend makeEntity ====", "end" ) ;
return result;
}
 
--------------------------------
 
서버족 java
 
String smtpHost = "192.168.0.1";->예시
String smtpPort = "25"
 
HttpServletRequest request = ctx.getServletRequest();
 
String[] emailArr =  "abc@naver.com,def@naver.com".split(",") ;
String title = request.getParameter("title");
String content = request.getParameter("content");
String sender = request.getParameter("email"); ; // 발신인 주소
 
try
{
// 프로퍼티 값 인스턴스 생성과 기본세션(SMTP 서버 호스트 지정)
   Properties props = new Properties();
   props.put("mail.transport.protocol", "smtp");
   props.put("mail.smtp.host", smtpHost);
   props.put("mail.smtp.port", smtpPort);
   
   Session mailSession = Session.getInstance(props);
    
   MimeMessage msg = new MimeMessage(mailSession);
   msg.setFrom(new InternetAddress("test@naver.com", sender,"euc-kr")); // 발신자 의 IP
    
   InternetAddress[] addressTo = new InternetAddress[emailArr.length];
   for(int i=0; i<emailArr.length; i++){
    addressTo[i] = new InternetAddress(emailArr[i]);
   }
   msg.setRecipients(Message.RecipientType.TO, addressTo);
    
   msg.setSentDate(new Date());
   msg.setSubject(title);
   msg.setContent(content, "text/html;charset=euc-kr"); // 내용 설정 (HTML 형식)
    
   Transport.send(msg);
}
   catch (MessagingException mex)
{
    mex.printStackTrace();
}
catch (Exception e)
{
e.printStackTrace();
}

 

Fancy (370 포인트) 님이 2013년 7월 2일 질문
Fancy님이 2013년 7월 2일 수정

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...