Nasıl Java uygulaması GMail, Yahoo veya Hotmail kullanarak bir e-posta gönderebilir miyim? | Netgez.com
SORU
5 EYLÃœL 2008, Cuma


Nasıl Java uygulaması GMail, Yahoo veya Hotmail kullanarak bir e-posta gönderebilir miyim?

Java benim uygulama bir GMail hesabı kullanarak bir e-posta göndermek mümkün mü? Java uygulaması ile şirket mail server, e-posta göndermek için yapılandırılmış, ancak bu uygulama dağıtmak ne zaman kesilecek gibi değil. Hotmail, Yahoo veya GMail kullanarak herhangi bir cevap kabul edilebilir.

CEVAP
6 EYLÃœL 2008, CUMARTESÄ°


İlk JavaMail API indirme ve ilgili jar dosyalarını sınıf içinde olduğundan emin olun.

İşte tam çalışan bir örnek bir GMail kullanarak.

import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;

public class Main {

    private static String USER_NAME = "*****";  // GMail user name (just the part before "@gmail.com")
    private static String PASSWORD = "********"; // GMail password
    private static String RECIPIENT = "lizard.bill@myschool.edu";

    public static void main(String[] args) {
        String from = USER_NAME;
        String pass = PASSWORD;
        String[] to = { RECIPIENT }; // list of recipient email addresses
        String subject = "Java send mail example";
        String body = "Welcome to JavaMail!";

        sendFromGMail(from, pass, to, subject, body);
    }

    private static void sendFromGMail(String from, String pass, String[] to, String subject, String body) {
        Properties props = System.getProperties();
        String host = "smtp.gmail.com";
        props.put("mail.smtp.starttls.enable", "true");
        props.put("mail.smtp.host", host);
        props.put("mail.smtp.user", from);
        props.put("mail.smtp.password", pass);
        props.put("mail.smtp.port", "587");
        props.put("mail.smtp.auth", "true");

        Session session = Session.getDefaultInstance(props);
        MimeMessage message = new MimeMessage(session);

        try {
            message.setFrom(new InternetAddress(from));
            InternetAddress[] toAddress = new InternetAddress[to.length];

            // To get the array of addresses
            for( int i = 0; i < to.length; i   ) {
                toAddress[i] = new InternetAddress(to[i]);
            }

            for( int i = 0; i < toAddress.length; i  ) {
                message.addRecipient(Message.RecipientType.TO, toAddress[i]);
            }

            message.setSubject(subject);
            message.setText(body);
            Transport transport = session.getTransport("smtp");
            transport.connect(host, from, pass);
            transport.sendMessage(message, message.getAllRecipients());
            transport.close();
        }
        catch (AddressException ae) {
            ae.printStackTrace();
        }
        catch (MessagingException me) {
            me.printStackTrace();
        }
    }
}

Doğal olarak, bu örnekte yaptığım gibi yığın izleme kodu üzerinde baskı Daha catch blok daha yapmak isteyeceksiniz. catch blok JavaMail daha düzgün onları işlemek için nasıl görebilirsiniz istisna atar API çağrıları görmek için kaldırın.


@jodonnel ve cevap veren herkese teÅŸekkürler. Onun cevabı tam bir cevap bu ÅŸekilde yaklaşık • götürdü çünkü ona bir ödül veriyorum.

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VÄ°DEO

Rastgele Yazarlar

  • Joanna Okrajni

    Joanna Okraj

    4 EYLÃœL 2010
  • Nick Pitera

    Nick Pitera

    8 NÄ°SAN 2006
  • talkandroid

    talkandroid

    27 Mayıs 2010