import java.io.IOException; import java.net.MalformedURLException; import java.net.URISyntaxException; import java.net.URL; import java.util.Date; import java.util.Properties; import javax.activation.DataHandler; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Multipart; import javax.mail.PasswordAuthentication; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.AddressException; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart; import javax.mail.util.ByteArrayDataSource; public class EmailSender { String username = ""; // e-mail server username ile değişecek String password = ""; // e-mail server password ile değişecek private class SMTPAuthenticator extends javax.mail.Authenticator { public PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(username, password); } } public static void main(String[] args) { EmailSender emailSender = new EmailSender(); Properties props = System.getProperties(); SMTPAuthenticator authenticator = emailSender.new SMTPAuthenticator(); props.put("mail.smtp.host", "email server"); // E-posta sunucusunun // adresi ile değişecek props.put("mail.smtp.auth", "true"); Session session = Session.getDefaultInstance(props, authenticator); MimeMessage message = new MimeMessage(session); try { message.setFrom(new InternetAddress("from")); // gönderen adresi // ile // değiştirilecek message.addRecipient(Message.RecipientType.TO, new InternetAddress("TO")); // alıcı // adresi // ile // değiştirilecek message.setSubject("subject"); // Konu ile değiştirilecek message.setSentDate(new Date()); message.setContent(emailSender.prepareHTMLMailWithImage()); Transport.send(message); } catch (AddressException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (MessagingException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (URISyntaxException e) { // TODO Auto-generated catch block e.printStackTrace(); } } private Multipart prepareHTMLMailWithImage() throws MessagingException, URISyntaxException { Multipart multipart = new MimeMultipart("alternative"); // Hazırladığımız HTML i kabul etmeyen client için ek olarak plaintext gönderiyoruz MimeBodyPart mimeBodyPartPlain = new MimeBodyPart(); // Düz metin String mailText = "Message text"; mimeBodyPartPlain.setDataHandler(new DataHandler(mailText, "text/plain; charset=UTF-8 ")); multipart.addBodyPart(mimeBodyPartPlain); // Düz metin sonu MimeBodyPart mimeBodyPartHtml = new MimeBodyPart(); String mailHtml = "HTML H1 HTML Message Text/H1 img src=cid:1@deneme align=\"right\" width=100 height=35/HTML"; mimeBodyPartHtml.setContent(mailHtml, "text/html; charset=UTF-8 "); MimeBodyPart mimeBodyPartImage = new MimeBodyPart(); URL url = this.getClass().getResource("/img/your.jpg"); // com ile aynı düzeyde olacak bir dizin try { mimeBodyPartImage.setDataHandler(new DataHandler(new ByteArrayDataSource(url.openStream(), "image/jpg"))); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } mimeBodyPartImage.setHeader("Content-ID", "<1@deneme>"); multipart.addBodyPart(mimeBodyPartHtml); multipart.addBodyPart(mimeBodyPartImage); return multipart; } }