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
İ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.
Nasıl benim Android uygulaması e-posta...
Nasıl birden çok işlem (tercihen) isim...
Nasıl bir dizin C veya C kullanarak do...
Nasıl Java UTC veya GMT geçerli tarih ...
Nasıl bir iPhone uygulamasından posta ...