Karakter Setleri Sun Certified Java Programmer (SCJP)
Sep 23

Java’da GMail mail server’ını kullanarak mail göndermek için Secure Connection kullanmamız gerekecek. Bu işlem aşağıdaki kodu kullanabilir ve Gmail üzerinden mail gönderebiliriz. Dikkat etmemiz gereken bir nokta mail göndermek için 465 nolu portun açık olması gereklidir.

Ayrıca Java Mail API’sine ihtiyacımız olacaktır.

import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.security.Security;
import java.util.Properties;
 
public class GoogleMailSender {
 
  private static final String 
    SMTP_HOST_NAME = "smtp.gmail.com";
  private static final String 
    SMTP_PORT = "465";
  private static final String 
    emailMsgTxt = "Javaci.net test maili gonderildi";
  private static final String 
    emailSubjectTxt = "Javaci.net";
  private static final String 
    // mailin kimden gittiğini gösteren adres
    emailFromAddress = "admin@javaci.net";
  private static final String 
    SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
  private static final String[] 
    // mail göndermek istediğimiz adresler
    sendTo = {"admin@javaci.net"};
 
  public void sendSSLMessage(String recipients[], String subject, 
    String message, String from) 
    throws MessagingException {
    Properties props = new Properties();
    props.put("mail.smtp.host", SMTP_HOST_NAME);
    props.put("mail.smtp.auth", "true");
    props.put("mail.debug", "true");
    props.put("mail.smtp.port", SMTP_PORT);
    props.put("mail.smtp.socketFactory.port", SMTP_PORT);
    props.put("mail.smtp.socketFactory.class", SSL_FACTORY);
    props.put("mail.smtp.socketFactory.fallback", "false");
 
    Session session = Session.getDefaultInstance(props, 
      new javax.mail.Authenticator() {
      protected PasswordAuthentication getPasswordAuthentication(){
        // buraya gmail mail adresinizi ve sifrenizi girmelisiniz.
        return new PasswordAuthentication("gmail_adresi", "sifre");
      }
    });
 
    Message msg = new MimeMessage(session);
    InternetAddress addressFrom = new InternetAddress(from);
    msg.setFrom(addressFrom);
 
    InternetAddress[] 
      addressTo = new InternetAddress[recipients.length];
    for (int i = 0; i < recipients.length; i++) {
      addressTo[i] = new InternetAddress(recipients[i]);
    }
    msg.setRecipients(Message.RecipientType.TO, addressTo);
 
    msg.setSubject(subject);
    msg.setContent(message, "text/plain");
    Transport.send(msg);
  }
 
public static void main(String args[]) throws Exception {
  Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
  new GoogleMailSender().sendSSLMessage(
    sendTo, emailSubjectTxt, emailMsgTxt, emailFromAddress);
  System.out.println("Sucessfully Sent mail to All Users");
}
}

yazan Erol KOCAMAN

Cevapla