본문 바로가기

안드로이드/코틀린

[AOS] 서드파티 앱을 이용하여 이메일 전송하기 & 앱내 문의하기 기능 구현

반응형

제가 운영하는 개인 앱에는 이용하면서 겪은 불편함을 이메일을 통해서 받구 있습니다. 

별도 페이지를 작성해서 자세한 정보들을 받을 수도 있지만 서버를 별도로 운영하지 않기 때문에 이메일 방법을 선택했고,

생각보다 많은 사용자들이 불편함과 건의사항들을 보내주셔서 다음 개발 기능 및 예상치 못한 버그들을 잡는데 유용하게 쓰고 있습니다.

아직 구현하지 않으신분들은 구현을 강력 추천합니다! 

 

이메일 전송 기능

실제 운영중인 앱에 캡쳐 화면으로 '[개발자에게 문의하기]'를 클릭 했을때 사진입니다.

문의시 받는 이메일 주소와 제목이등 필요 내용을 자동으로 입력된 상태로 사용자에게 노출됨으로써 불편함을 최소화 했습니다.

    private fun sendInquiryEmail() {
        try {
            var intent = Intent(Intent.ACTION_SENDTO)
            // email setting 배열로 해놔서 복수 발송 가능

            intent.apply {
                data = Uri.parse("mailto:wone2044@gmail.com?subject=${getString(R.string.inquiry_title)}&body=내용")
                startActivity(intent)
            }
        } catch (e: ActivityNotFoundException) {
            activity?.let {
                CommonUtils.showToast(it, getString(R.string.notfound_email_app))
            }

        }
    }

 

주의사항

Uri.parse를 이용해 한꺼번에 넣어주는 방법외에 intent를 활용한 방법도 있습니다.

    private fun sendInquiryEmail() {
        try {
            var intent = Intent(Intent.ACTION_SENDTO)
            // email setting 배열로 해놔서 복수 발송 가능

            intent.apply {
                data = Uri.parse("mailto:")
                putExtra(Intent.EXTRA_EMAIL, "wone2044@gmail.com")
                putExtra(Intent.EXTRA_SUBJECT, "메일 제목")
                putExtra(Intent.EXTRA_TEXT, "메일 내용")
                startActivity(intent)
            }
        } catch (e: ActivityNotFoundException) {
            activity?.let {
                CommonUtils.showToast(it, getString(R.string.notfound_email_app))
            }

        }
    }

하지만 네이버 메일과 구글 메일등 여러 메일 플랫폼을 다 대응하고자 한다면 intent를 활용한 방법이 아닌 Uri.parse에 모두 기재하는 방법을 이용해야 합니다.

 

 

 

 

 

 

 

 

 

 

 

반응형