Menü

Android Mail Gönderme Uygulaması

24 Ocak 2015 - Android & IOS

mail_imag

Merhaba arkadaşlar bugünkü yazımda android’de mail atma olayını anlatacağım. Sizin uygulamanın içine tanımladığınız gmail adresi ve şifresiyle başka bir mail adresine nasıl mail atabileceğinize deüineceğim. Bu uygulama ile kullanıcıyla etkileşimi yüksek veya haberleşmeye ihtiyacınız olduğu kısımlarda kullanabileceğiniz kodlara sahip olacaksınız. Bu kodları iletişim, hakkında, bilgi alma gibi kısımlarda da kendi mailinizi tanımlayıp kullanabilirsiniz.

Uygulama bir class’da işleri halletmelktedir. Daha önce karşılaştığım uygulamalarda birden çok class’la işlemler gerçekleşmekteydi. Anlaşılabilirlik ve kolay kodlanabilirlik aynı zamanda da işimize yaraması dolayısıyla bu uyuglamayı paylaşma gereği duydum. Projenizin libs klasörüne şu 3 jar dosyasını ekleyiniz.

https://code.google.com/p/javamail-android/downloads/list

activation.jar

additional.jar

mail.jar

ActivityClass altında aşağıdaki değişkenleri tanımlayın.

Button gonder;
EditText mesajedit;
Session session=null;
ProgressDialog pdialog=null;
Context context=null;
EditText alici=null;
String mesaj=null;

String konu=null;

OnCreate fonksiyonu altında

context=this;

gonder=(Button)findViewById(R.id.button2);
talep=(EditText)findViewById(R.id.editText1);

mesaj=mesajedit.getText().ToString();

gonder.setOnClickListener(new OnClickListener(){

@Override
public void onClick(View v) {

Properties props = new Properties();
props.put(“mail.smtp.host”, “smtp.gmail.com”);
props.put(“mail.smtp.socketFactory.port”, “465”);
props.put(“mail.smtp.socketFactory.class”, “javax.net.ssl.SSLSocketFactory”);
props.put(“mail.smtp.auth”, “true”);
props.put(“mail.smtp.port”, “465”);

//Mail ayarları yapılandırması

session = Session.getDefaultInstance(props, new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(“gmail kullanıcı adı”, “gmail şifre”);
}
});
pdialog = ProgressDialog.show(context, “Mail”, “Mail  Gönderiliyor…”,true);
RetreiveFeedTask task= new RetreiveFeedTask();
task.execute();
}});

Aynı class içerisinde aşağıdaki class kodlamasını da gerçekleştirin.

class RetreiveFeedTask extends AsyncTask<String, Void, String> {
protected String doInBackground(String… urls) {
try {

Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(“gmail adresi”));//Kimden gönderiliyor?
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(alici));//Kime gönderiliyor?
message.setSubject( konu);
message.setContent(talep.getText().toString(), “text/html; charset=utf-8″);
Transport.send(mesaj); Mail gönderiliyor

}
catch (MessagingException e) {//Hata yakalama
e.printStackTrace();
}
catch (Exception e) {
e.printStackTrace();

}
return null;
}

protected void onPostExecute(String feed) {//İşler yolunda gitmişse

pdialog.dismiss();//Dialoğu kapat
Toast.makeText(getApplicationContext(), “Mail başarıyla gönderildi..”, Toast.LENGTH_LONG).show();

}
}

“Mail başarıyla gönderildi.” mesajını alıyor ve gelen kutunuzda tanımladığınız adresden bir mail gelmişse işlemler başarıyla sonlanmış demektir. Tersi bir durum söz konusuysa veya bir hata oluşması durumunda LogCat ekranından hatanın ne olduğuna bakıp yorum olarak yazmanız halinde yardımcı olabileceğimi sanıyorum. 🙂 İyi çalışmalar

Bir Cevap Yazın