Sending Email From Your Application Using Java Mail API(Java ile Mail Gönderme Örneği)
Haziran 20, 2010 | Comments | JSP(Java Server Pages)
mail.jar dosyasını: http://prntscr.com/hou0
MailGonder.java
package ethemsulan.com;import javax.mail.*;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;import java.security.Security;import java.util.Properties;public class MailGonder {private static final String SMTP_HOST_NAME = "smtp.gmail.com";private static final String SMTP_PORT = "465";private static String emailMsgTxt =null;private static String emailSubjectTxt = null;// mailin kimden gittiğini gösteren adres.Gerçek gmail adresinprivate static final StringemailFromAddress = "ethemsulan@gmail.com";private static final String SSL_FACTORY ="javax.net.ssl.SSLSocketFactory";// mail göndermek istediğimiz adreslerprivate static String sendTo = null;private static MailGonder instance = null;private MailGonder() { }public static MailGonder getinstance(){if (instance == null)instance = new MailGonder();return instance;}public static void setEmailMsgTxt(String emailMsgTxt) {MailGonder.emailMsgTxt = emailMsgTxt;}public static void setEmailSubjectTxt(String emailSubjectTxt) {MailGonder.emailSubjectTxt = emailSubjectTxt;}public static void setSendTo(String sendTo) {MailGonder.sendTo = sendTo;}public void sendSSLMessage() throws MessagingException {Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());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("ethemsulan@gmail.com","mesela123");}});Message msg = new MimeMessage(session);InternetAddress addressFrom = new InternetAddress(emailFromAddress);msg.setFrom(addressFrom);InternetAddress addressTo = new InternetAddress(sendTo);msg.setRecipient(Message.RecipientType.TO, addressTo);msg.setSubject(emailSubjectTxt);msg.setContent(emailMsgTxt, "text/plain");Transport.send(msg);} }
Orj kod:http://www.ethemsulan.pastebin.com/byvACAAb
index.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%><form action="UyeOl.jsp" method="POST">
| Email Adresi: | <input type="text" name="email" value="" /> |
| Parola: | <input type="password" name="parola1" value="" /> |
| Parola Tekrar: | <input type="password" name="parola2" value="" /> |
| <input type="submit" value="Uye Ol" /> |
Orj kod:http://www.ethemsulan.pastebin.com/bd7dgkDM
UyeOl.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%><%-- jsp sayfamizda kullanmak istedigimiz siniflari import ediyoruz--%><%@page import="ethemsulan.com.MailGonder, ethemsulan.com.Uye,ethemsulan.com.IdeUret" %><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><%!String email,parola1,parola2;%><%email=request.getParameter("email");parola1=request.getParameter("parola1");parola2=request.getParameter("parola2");if(!parola1.equals(parola2)){out.println("Parolalar ayni degil");return;//email formatin kontrolunu yapiyor.}else if (!email.matches("(?i)\\b[A-Z0-9._%+-]+@(?:[A-Z0-9-]+\\.)+[A-Z]{2,6}\\b")) {out.println("Email formati yanlis");return;}%><jsp:useBean id="uye" class="ethemsulan.com.Uye" scope="request"/><jsp:setProperty name="uye" property="email" value="${param['email']}"/><jsp:setProperty name="uye" property="parola1"value="${param['parola1']}"/><%!String aktKodu,uyeEmail;%><input type="hidden" name="akt"value="<jsp:getProperty name="uye" property="parola1"/>"><input type="hidden" name="email" value="<jsp:getProperty name="uye" property="email" />"><%aktKodu=request.getParameter("parola1");uyeEmail=request.getParameter("email");%><%MailGonder.getinstance().setEmailSubjectTxt("Mehmet Ethem SULAN");MailGonder.getinstance().setSendTo(uyeEmail);MailGonder.getinstance().setEmailMsgTxt("Java Bloguna Hosgeldiniz : \n Uyelik Linkiniz:\n" +Uye.aktLinki() + "\nBu Link'e tiklayin ve "+IdeUret.getInstance().AkKoduUret(aktKodu)+" ile Uyeliginizi Aktiflestirebilirsiniz.\n");MailGonder.getinstance().sendSSLMessage();out.println("Sizin gmail hesabinizdan "+uyeEmail+" mail gonderildi");%>
Orj kod:http://www.ethemsulan.pastebin.com/gpCfSHFY
IdeUret.java
package ethemsulan.com;import java.io.UnsupportedEncodingException;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;import sun.misc.BASE64Encoder;public class IdeUret {public static synchronized IdeUret getInstance(){if(instance == null){instance = new IdeUret();}return instance;}private static IdeUret instance;private IdeUret(){}public synchronized String AkKoduUret(String plaintext){MessageDigest md = null;try{//Secure Hash Algorithmmd = MessageDigest.getInstance("SHA");}catch(NoSuchAlgorithmException e){e.printStackTrace();}try{md.update(plaintext.getBytes("UTF-8"));}catch(UnsupportedEncodingException e){e.printStackTrace();}byte siraDizisi[] = md.digest();String hash = (new BASE64Encoder()).encode(siraDizisi);return hash;} }
orj kod:http://www.ethemsulan.pastebin.com/jiFj1uwt
Uye.java
package ethemsulan.com;public class Uye {private String email=null;private String parola1=null;public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}public String getParola1() {return parola1;}//Parolaya ozel bir ide uretirpublic void setParola1(String parola1) {this.parola1 = parola1;}public static String aktLinki(){return "http://www.ethemsulan.com";}}
Orj kod:http://www.ethemsulan.pastebin.com/PEj1n8mz
Java bean detayli bilgi icin: http://www.ethemsulan.com/2010/06/how-to-input-and-output-parameters-from.html
Uygulamanın zipli hali: http://hotfile.com/dl/49503509/380bada/ethemsulan.com.rar.html
Zipin dosyasını çıkartığınızda içinde içinde AktivasyonFormu ve mail.jar ve resim dosyası var.AktşvasyonFormunun içinde mail.jar dosyası zaten var. Netbeanse zipten çıkartıp yüklemek için http://prntscr.com/hovl resme bakın.Uygulamayı çalıştırmadan önce MailGonder.java sınıfın içindeki gerçek gmail ve parolanızı girip istediğiniz bir mail adresine mail gönderebilrisiniz.
