안드로이드에서 웹서버로 정보를 보내 이메일을 보내려고 합니다.
웹 브라우저에서 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();
}