{"id":37507,"date":"2026-01-07T00:41:32","date_gmt":"2026-01-06T21:41:32","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=37507"},"modified":"2026-01-07T00:41:32","modified_gmt":"2026-01-06T21:41:32","slug":"javamail-ile-e-posta-gonderme-rehberi-smtp-kullanarak-javada-mail-gonderme","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/javamail-ile-e-posta-gonderme-rehberi-smtp-kullanarak-javada-mail-gonderme\/","title":{"rendered":"JavaMail ile E-posta G\u00f6nderme Rehberi: SMTP Kullanarak Java&#8217;da Mail G\u00f6nderme"},"content":{"rendered":"<p><body><\/p>\n<h2>JavaMail ile E-posta G\u00f6nderme Rehberi: SMTP Kullanarak Java&#8217;da Mail G\u00f6nderme<\/h2>\n<h3>Giri\u015f<\/h3>\n<p>G\u00fcn\u00fcm\u00fcz\u00fcn dijital d\u00fcnyas\u0131nda, uygulamalar\u0131n e-posta g\u00f6nderme yetene\u011fi, kullan\u0131c\u0131 bildirimi, \u015fifre s\u0131f\u0131rlama, raporlama ve pazarlama gibi bir\u00e7ok i\u015flev i\u00e7in hayati \u00f6neme sahiptir. Java ekosisteminde bu g\u00f6revi yerine getirmek i\u00e7in en yayg\u0131n ve g\u00fc\u00e7l\u00fc ara\u00e7lardan biri JavaMail API&#8217;sidir. Bu rehberde, JavaMail API&#8217;sini kullanarak SMTP (Simple Mail Transfer Protocol) arac\u0131l\u0131\u011f\u0131yla nas\u0131l e-posta g\u00f6nderece\u011finizi ad\u0131m ad\u0131m \u00f6\u011freneceksiniz. Kapsaml\u0131 kod \u00f6rnekleri, pratik bilgiler ve s\u0131k\u00e7a sorulan sorularla bu konuyu derinlemesine ele alaca\u011f\u0131z.<\/p>\n<h3>JavaMail API&#8217;si ve SMTP Temelleri<\/h3>\n<h4>JavaMail API&#8217;si Nedir?<\/h4>\n<p>JavaMail API&#8217;si, Java uygulamalar\u0131n\u0131n e-posta servisleriyle etkile\u015fim kurmas\u0131n\u0131 sa\u011flayan standart bir Java uzant\u0131s\u0131d\u0131r. Bu API, e-posta olu\u015fturma, g\u00f6nderme, alma ve y\u00f6netme gibi i\u015flemleri kolayla\u015ft\u0131ran bir dizi s\u0131n\u0131f ve aray\u00fcz sunar. POP3, IMAP ve SMTP gibi yayg\u0131n e-posta protokolleri i\u00e7in destek sa\u011flar. JavaMail, e-posta ileti\u015fiminin karma\u015f\u0131k detaylar\u0131n\u0131 soyutlayarak geli\u015ftiricilerin daha y\u00fcksek seviyeli i\u015f mant\u0131\u011f\u0131na odaklanmas\u0131na olanak tan\u0131r.<\/p>\n<h4>SMTP Nedir ve Nas\u0131l \u00c7al\u0131\u015f\u0131r?<\/h4>\n<p>SMTP (Simple Mail Transfer Protocol), e-posta mesajlar\u0131n\u0131n bir e-posta istemcisinden bir e-posta sunucusuna veya bir e-posta sunucusundan ba\u015fka bir e-posta sunucusuna g\u00f6nderilmesini sa\u011flayan end\u00fcstri standard\u0131 bir protokold\u00fcr. Temel olarak, &#8220;giden&#8221; e-posta protokol\u00fcd\u00fcr.<\/p>\n<p>SMTP&#8217;nin \u00e7al\u0131\u015fma mant\u0131\u011f\u0131 \u015fu ad\u0131mlar\u0131 i\u00e7erir:<\/p>\n<ol>\n<li>E-posta istemcisi (\u00f6rne\u011fin, Java uygulaman\u0131z), SMTP sunucusuna bir ba\u011flant\u0131 kurar.<\/li>\n<li>\u0130stemci, kimlik do\u011frulama bilgileri (kullan\u0131c\u0131 ad\u0131 ve \u015fifre) sa\u011flayarak kendini sunucuya tan\u0131t\u0131r.<\/li>\n<li>\u0130stemci, g\u00f6nderen ve al\u0131c\u0131 adresleri, konuyu ve mesaj i\u00e7eri\u011fini sunucuya iletir.<\/li>\n<li>SMTP sunucusu mesaj\u0131 al\u0131r ve al\u0131c\u0131n\u0131n e-posta adresi i\u00e7in uygun SMTP sunucusunu bulur.<\/li>\n<li>Mesaj, al\u0131c\u0131n\u0131n SMTP sunucusuna iletilir ve oradan da al\u0131c\u0131n\u0131n gelen kutusuna teslim edilir (genellikle POP3 veya IMAP protokolleri arac\u0131l\u0131\u011f\u0131yla).<\/li>\n<\/ol>\n<p>SMTP genellikle 25 (\u015fifresiz), 465 (SSL\/TLS ile g\u00fcvenli) veya 587 (STARTTLS ile g\u00fcvenli) portlar\u0131 \u00fczerinden \u00e7al\u0131\u015f\u0131r. G\u00fcvenlik nedenleriyle, modern uygulamalarda genellikle 465 veya 587 numaral\u0131 portlar tercih edilir.<\/p>\n<h3>JavaMail ile E-posta G\u00f6ndermeye Ba\u015flamak<\/h3>\n<p>JavaMail ile e-posta g\u00f6ndermek i\u00e7in \u00f6ncelikle projenize gerekli ba\u011f\u0131ml\u0131l\u0131klar\u0131 eklemeniz ve ard\u0131ndan belirli ad\u0131mlar\u0131 takip etmeniz gerekir.<\/p>\n<h4>Gerekli Ba\u011f\u0131ml\u0131l\u0131klar<\/h4>\n<p>JavaMail API&#8217;sini projenize dahil etmek i\u00e7in Maven veya Gradle kullanabilirsiniz.<\/p>\n<p><strong>Maven i\u00e7in <code>pom.xml<\/code>:<\/strong><\/p>\n<pre><code class=\"language-xml\"><dependencies>\n    <dependency>\n        <groupId>com.sun.mail<\/groupId>\n        <artifactId>jakarta.mail<\/artifactId>\n        <version>2.0.1<\/version> <!-- En g\u00fcncel s\u00fcr\u00fcm\u00fc kontrol edin -->\n    <\/dependency>\n    <!-- E\u011fer Jakarta EE 8 veya \u00fcst\u00fcn\u00fc kullan\u0131yorsan\u0131z, bu yeterli olabilir. \n         Eski Java s\u00fcr\u00fcmleri veya ba\u011f\u0131ms\u0131z kullan\u0131m i\u00e7in mail.jar da gerekebilir.\n         Ancak jakarta.mail genellikle her \u015feyi i\u00e7erir. -->\n<\/dependencies><\/code><\/pre>\n<p><strong>Gradle i\u00e7in <code>build.gradle<\/code>:<\/strong><\/p>\n<pre><code class=\"language-gradle\">dependencies {\n    implementation 'com.sun.mail:jakarta.mail:2.0.1' \/\/ En g\u00fcncel s\u00fcr\u00fcm\u00fc kontrol edin\n}<\/code><\/pre>\n<p><code>jakarta.mail<\/code> ba\u011f\u0131ml\u0131l\u0131\u011f\u0131, JavaMail&#8217;in Jakarta EE uyumlu s\u00fcr\u00fcm\u00fcd\u00fcr ve modern Java projeleri i\u00e7in \u00f6nerilir.<\/p>\n<h4>E-posta G\u00f6nderme Ad\u0131mlar\u0131<\/h4>\n<p>E-posta g\u00f6nderme s\u00fcreci temel olarak \u00fc\u00e7 ana ad\u0131mdan olu\u015fur: bir oturum (Session) olu\u015fturma, e-posta mesaj\u0131n\u0131 (MimeMessage) olu\u015fturma ve e-postay\u0131 g\u00f6nderme.<\/p>\n<h5>1. Oturum (Session) Olu\u015fturma<\/h5>\n<p>Bir oturum, e-posta sunucusuyla ileti\u015fim kurmak i\u00e7in gerekli yap\u0131land\u0131rma bilgilerini (SMTP sunucusu, port, kimlik do\u011frulama vb.) i\u00e7erir. Bu bilgiler <code>java.util.Properties<\/code> nesnesi arac\u0131l\u0131\u011f\u0131yla sa\u011flan\u0131r.<\/p>\n<pre><code class=\"language-java\">import java.util.Properties;\nimport jakarta.mail.Authenticator;\nimport jakarta.mail.PasswordAuthentication;\nimport jakarta.mail.Session;\n\npublic class MailSessionExample {\n\n    public static Session createMailSession(String host, String port, \n                                            String username, String password) {\n        Properties props = new Properties();\n        props.put(\"mail.smtp.host\", host);             \/\/ SMTP sunucu adresi (\u00f6rn: smtp.gmail.com)\n        props.put(\"mail.smtp.port\", port);             \/\/ SMTP portu (\u00f6rn: 587 veya 465)\n        props.put(\"mail.smtp.auth\", \"true\");           \/\/ Kimlik do\u011frulama gerekli mi?\n        props.put(\"mail.smtp.starttls.enable\", \"true\"); \/\/ TLS kullan\u0131ls\u0131n m\u0131? (Port 587 i\u00e7in)\n        \/\/ props.put(\"mail.smtp.ssl.enable\", \"true\");   \/\/ SSL kullan\u0131ls\u0131n m\u0131? (Port 465 i\u00e7in)\n\n        Authenticator auth = new Authenticator() {\n            protected PasswordAuthentication getPasswordAuthentication() {\n                return new PasswordAuthentication(username, password);\n            }\n        };\n\n        \/\/ E\u011fer kimlik do\u011frulama gerekiyorsa Authenticator ile\n        Session session = Session.getInstance(props, auth);\n        \n        \/\/ Hata ay\u0131klama i\u00e7in (konsola detayl\u0131 loglar basar)\n        \/\/ session.setDebug(true); \n        \n        return session;\n    }\n}<\/code><\/pre>\n<p>Yukar\u0131daki \u00f6rnekte, <code>mail.smtp.host<\/code>, <code>mail.smtp.port<\/code>, <code>mail.smtp.auth<\/code> ve <code>mail.smtp.starttls.enable<\/code> (veya <code>mail.smtp.ssl.enable<\/code>) gibi temel \u00f6zellikler ayarlanm\u0131\u015ft\u0131r. <code>Authenticator<\/code> s\u0131n\u0131f\u0131, e-posta sunucusuna kimlik do\u011frulamas\u0131 i\u00e7in kullan\u0131c\u0131 ad\u0131 ve \u015fifre sa\u011flar.<\/p>\n<h5>2. E-posta Mesaj\u0131 (MimeMessage) Olu\u015fturma<\/h5>\n<p>Oturum olu\u015fturulduktan sonra, g\u00f6nderilecek e-posta mesaj\u0131n\u0131 temsil eden bir <code>MimeMessage<\/code> nesnesi olu\u015fturulur. Bu nesneye g\u00f6nderen, al\u0131c\u0131, konu ve i\u00e7erik gibi bilgiler eklenir.<\/p>\n<pre><code class=\"language-java\">import jakarta.mail.Message;\nimport jakarta.mail.MessagingException;\nimport jakarta.mail.Session;\nimport jakarta.mail.internet.InternetAddress;\nimport jakarta.mail.internet.MimeMessage;\n\npublic class MailMessageExample {\n\n    public static MimeMessage createEmailMessage(Session session, \n                                                 String fromEmail, String toEmail, \n                                                 String subject, String body) throws MessagingException {\n        MimeMessage message = new MimeMessage(session);\n        message.setFrom(new InternetAddress(fromEmail)); \/\/ G\u00f6nderen\n        message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(toEmail)); \/\/ Al\u0131c\u0131(lar)\n        message.setSubject(subject); \/\/ Konu\n        message.setText(body);       \/\/ Mesaj i\u00e7eri\u011fi (d\u00fcz metin)\n\n        return message;\n    }\n    \n    \/\/ Birden fazla al\u0131c\u0131 i\u00e7in:\n    \/\/ message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(\"al\u0131c\u01311@example.com, al\u0131c\u01312@example.com\"));\n    \/\/ CC i\u00e7in:\n    \/\/ message.setRecipients(Message.RecipientType.CC, InternetAddress.parse(\"cc_al\u0131c\u0131@example.com\"));\n    \/\/ BCC i\u00e7in:\n    \/\/ message.setRecipients(Message.RecipientType.BCC, InternetAddress.parse(\"bcc_al\u0131c\u0131@example.com\"));\n}<\/code><\/pre>\n<p><code>InternetAddress.parse()<\/code> metodu, birden fazla e-posta adresini virg\u00fclle ay\u0131rarak kabul edebilir. <code>Message.RecipientType<\/code> enum&#8217;u, al\u0131c\u0131 t\u00fcr\u00fcn\u00fc (TO, CC, BCC) belirtmek i\u00e7in kullan\u0131l\u0131r.<\/p>\n<h5>3. E-postay\u0131 G\u00f6nderme<\/h5>\n<p>Mesaj haz\u0131rland\u0131ktan sonra, <code>jakarta.mail.Transport<\/code> s\u0131n\u0131f\u0131n\u0131n statik <code>send()<\/code> metodu kullan\u0131larak e-posta g\u00f6nderilir.<\/p>\n<pre><code class=\"language-java\">import jakarta.mail.MessagingException;\nimport jakarta.mail.Transport;\nimport jakarta.mail.internet.MimeMessage;\n\npublic class MailSenderExample {\n\n    public static void sendEmail(MimeMessage message) throws MessagingException {\n        Transport.send(message);\n    }\n}<\/code><\/pre>\n<p><code>Transport.send()<\/code> metodu, dahili olarak oturumun yap\u0131land\u0131rma bilgilerini kullanarak SMTP sunucusuna ba\u011flan\u0131r ve mesaj\u0131 iletir. G\u00f6nderme i\u015flemi s\u0131ras\u0131nda bir hata olu\u015fursa <code>MessagingException<\/code> f\u0131rlat\u0131l\u0131r.<\/p>\n<h4>Tam Bir E-posta G\u00f6nderme \u00d6rne\u011fi<\/h4>\n<p>\u015eimdi t\u00fcm bu ad\u0131mlar\u0131 birle\u015ftiren eksiksiz bir Java s\u0131n\u0131f\u0131 olu\u015ftural\u0131m. Bu \u00f6rnekte, Gmail&#8217;in SMTP sunucusunu kullanaca\u011f\u0131z. Unutmay\u0131n, Gmail i\u00e7in &#8220;Uygulama \u015eifreleri&#8221; (App Passwords) kullanman\u0131z gerekebilir, \u00f6zellikle iki fakt\u00f6rl\u00fc kimlik do\u011frulama a\u00e7\u0131ksa.<\/p>\n<pre><code class=\"language-java\">import java.util.Properties;\nimport jakarta.mail.Authenticator;\nimport jakarta.mail.Message;\nimport jakarta.mail.MessagingException;\nimport jakarta.mail.PasswordAuthentication;\nimport jakarta.mail.Session;\nimport jakarta.mail.Transport;\nimport jakarta.mail.internet.InternetAddress;\nimport jakarta.mail.internet.MimeMessage;\n\npublic class JavaMailSender {\n\n    \/\/ E-posta kimlik bilgileri ve sunucu ayarlar\u0131\n    private static final String SENDER_EMAIL = \"sizin_epostaniz@gmail.com\"; \/\/ G\u00f6nderen e-posta adresi\n    private static final String SENDER_PASSWORD = \"sizin_uygulama_sifreniz\"; \/\/ Gmail uygulama \u015fifresi veya e-posta \u015fifresi\n    private static final String SMTP_HOST = \"smtp.gmail.com\";\n    private static final String SMTP_PORT = \"587\"; \/\/ TLS i\u00e7in 587, SSL i\u00e7in 465\n\n    public static void main(String[] args) {\n        String recipientEmail = \"alici_epostasi@example.com\";\n        String emailSubject = \"JavaMail ile Test E-postas\u0131\";\n        String emailBody = \"Merhaba,\\n\\nBu e-posta JavaMail API kullan\u0131larak g\u00f6nderilmi\u015ftir.\\n\\nSayg\u0131lar\u0131mla,\\nJava Uygulaman\u0131z\";\n\n        try {\n            \/\/ 1. Oturum (Session) olu\u015fturma\n            Properties props = new Properties();\n            props.put(\"mail.smtp.host\", SMTP_HOST);\n            props.put(\"mail.smtp.port\", SMTP_PORT);\n            props.put(\"mail.smtp.auth\", \"true\");\n            props.put(\"mail.smtp.starttls.enable\", \"true\"); \/\/ TLS i\u00e7in\n\n            Authenticator auth = new Authenticator() {\n                protected PasswordAuthentication getPasswordAuthentication() {\n                    return new PasswordAuthentication(SENDER_EMAIL, SENDER_PASSWORD);\n                }\n            };\n\n            Session session = Session.getInstance(props, auth);\n            session.setDebug(true); \/\/ Hata ay\u0131klama \u00e7\u0131kt\u0131lar\u0131n\u0131 g\u00f6rmek i\u00e7in\n\n            \/\/ 2. E-posta Mesaj\u0131 (MimeMessage) olu\u015fturma\n            MimeMessage message = new MimeMessage(session);\n            message.setFrom(new InternetAddress(SENDER_EMAIL));\n            message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(recipientEmail));\n            message.setSubject(emailSubject);\n            message.setText(emailBody);\n\n            \/\/ 3. E-postay\u0131 G\u00f6nderme\n            Transport.send(message);\n\n            System.out.println(\"E-posta ba\u015far\u0131yla g\u00f6nderildi!\");\n\n        } catch (MessagingException e) {\n            System.err.println(\"E-posta g\u00f6nderilirken bir hata olu\u015ftu: \" + e.getMessage());\n            e.printStackTrace();\n        }\n    }\n}<\/code><\/pre>\n<p>Bu kodu \u00e7al\u0131\u015ft\u0131rmadan \u00f6nce <code>SENDER_EMAIL<\/code>, <code>SENDER_PASSWORD<\/code> ve <code>recipientEmail<\/code> de\u011fi\u015fkenlerini kendi bilgilerinizle g\u00fcncellemeyi unutmay\u0131n.<\/p>\n<h3>Geli\u015fmi\u015f E-posta \u00d6zellikleri ve Pratik Bilgiler<\/h3>\n<p>JavaMail sadece d\u00fcz metin e-postalar\u0131 g\u00f6ndermekle kalmaz, ayn\u0131 zamanda HTML i\u00e7erik, dosya ekleri ve daha fazlas\u0131n\u0131 destekler.<\/p>\n<h4>HTML \u0130\u00e7erikli E-postalar G\u00f6nderme<\/h4>\n<p>HTML format\u0131nda e-posta g\u00f6ndermek i\u00e7in <code>MimeMessage<\/code> yerine <code>MimeMultipart<\/code> ve <code>MimeBodyPart<\/code> s\u0131n\u0131flar\u0131n\u0131 kullan\u0131r\u0131z.<\/p>\n<pre><code class=\"language-java\">import jakarta.mail.internet.MimeBodyPart;\nimport jakarta.mail.internet.MimeMultipart;\nimport jakarta.mail.internet.MimeMessage;\nimport jakarta.mail.Session;\nimport jakarta.mail.MessagingException;\nimport jakarta.mail.Message;\nimport jakarta.mail.internet.InternetAddress;\n\npublic class HtmlMailExample {\n\n    public static MimeMessage createHtmlEmail(Session session, String fromEmail, String toEmail, \n                                              String subject, String htmlBody) throws MessagingException {\n        MimeMessage message = new MimeMessage(session);\n        message.setFrom(new InternetAddress(fromEmail));\n        message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(toEmail));\n        message.setSubject(subject);\n\n        \/\/ HTML i\u00e7eri\u011fi i\u00e7in MimeBodyPart olu\u015fturma\n        MimeBodyPart htmlPart = new MimeBodyPart();\n        htmlPart.setContent(htmlBody, \"text\/html; charset=utf-8\");\n\n        \/\/ MimeMultipart olu\u015fturma ve HTML i\u00e7eri\u011fini ekleme\n        MimeMultipart multipart = new MimeMultipart();\n        multipart.addBodyPart(htmlPart);\n\n        \/\/ Mesaj\u0131n i\u00e7eri\u011fini multipart olarak ayarlama\n        message.setContent(multipart);\n\n        return message;\n    }\n    \n    public static void main(String[] args) throws MessagingException {\n        \/\/ ... Session olu\u015fturma kodu (\u00f6nceki \u00f6rnekteki gibi) ...\n        Session session = JavaMailSender.createMailSession(JavaMailSender.SMTP_HOST, JavaMailSender.SMTP_PORT, \n                                                         JavaMailSender.SENDER_EMAIL, JavaMailSender.SENDER_PASSWORD);\n        \n        String htmlContent = \"\"\n                           + \"<p>Bu <b>HTML<\/b> format\u0131nda bir e-postad\u0131r.<\/p>\"\n                           + \"<p>Resmi web sitemizi ziyaret edin: <a href='https:\/\/www.example.com'>Example.com<\/a><\/p>\";\n        \n        MimeMessage htmlMessage = createHtmlEmail(session, JavaMailSender.SENDER_EMAIL, \"alici@example.com\", \n                                                  \"HTML E-posta Testi\", htmlContent);\n        Transport.send(htmlMessage);\n        System.out.println(\"HTML E-posta ba\u015far\u0131yla g\u00f6nderildi!\");\n    }\n}<\/code><\/pre>\n<p><code>setContent(htmlBody, \"text\/html; charset=utf-8\")<\/code> sat\u0131r\u0131, mesaj\u0131n i\u00e7eri\u011finin HTML oldu\u011funu ve UTF-8 karakter kodlamas\u0131 kulland\u0131\u011f\u0131n\u0131 belirtir.<\/p>\n<h4>Dosya Eki Ekleme (Attachments)<\/h4>\n<p>E-postalara dosya eki eklemek de <code>MimeMultipart<\/code> ve <code>MimeBodyPart<\/code> kullanarak yap\u0131l\u0131r.<\/p>\n<pre><code class=\"language-java\">import jakarta.activation.DataHandler;\nimport jakarta.activation.DataSource;\nimport jakarta.activation.FileDataSource;\nimport jakarta.mail.internet.MimeBodyPart;\nimport jakarta.mail.internet.MimeMultipart;\nimport jakarta.mail.internet.MimeMessage;\nimport jakarta.mail.Session;\nimport jakarta.mail.MessagingException;\nimport jakarta.mail.Message;\nimport jakarta.mail.internet.InternetAddress;\n\nimport java.io.File;\n\npublic class AttachmentMailExample {\n\n    public static MimeMessage createEmailWithAttachment(Session session, String fromEmail, String toEmail, \n                                                        String subject, String body, String filePath) throws MessagingException {\n        MimeMessage message = new MimeMessage(session);\n        message.setFrom(new InternetAddress(fromEmail));\n        message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(toEmail));\n        message.setSubject(subject);\n\n        \/\/ Mesaj\u0131n i\u00e7eri\u011fi i\u00e7in bir MimeBodyPart\n        MimeBodyPart messageBodyPart = new MimeBodyPart();\n        messageBodyPart.setText(body);\n\n        \/\/ Dosya eki i\u00e7in bir MimeBodyPart\n        MimeBodyPart attachmentBodyPart = new MimeBodyPart();\n        DataSource source = new FileDataSource(filePath);\n        attachmentBodyPart.setDataHandler(new DataHandler(source));\n        attachmentBodyPart.setFileName(new File(filePath).getName()); \/\/ Ekin ad\u0131n\u0131 ayarla\n\n        \/\/ MimeMultipart olu\u015fturma ve par\u00e7alar\u0131 ekleme\n        MimeMultipart multipart = new MimeMultipart();\n        multipart.addBodyPart(messageBodyPart); \/\/ Metin i\u00e7eri\u011fi\n        multipart.addBodyPart(attachmentBodyPart); \/\/ Dosya eki\n\n        \/\/ Mesaj\u0131n i\u00e7eri\u011fini multipart olarak ayarlama\n        message.setContent(multipart);\n\n        return message;\n    }\n    \n    public static void main(String[] args) throws MessagingException {\n        \/\/ ... Session olu\u015fturma kodu ...\n        Session session = JavaMailSender.createMailSession(JavaMailSender.SMTP_HOST, JavaMailSender.SMTP_PORT, \n                                                         JavaMailSender.SENDER_EMAIL, JavaMailSender.SENDER_PASSWORD);\n        \n        String attachmentPath = \"C:\\\\Users\\\\Kullanici\\\\Desktop\\\\test.pdf\"; \/\/ Eklemek istedi\u011finiz dosyan\u0131n yolu\n        \n        MimeMessage attachedMessage = createEmailWithAttachment(session, JavaMailSender.SENDER_EMAIL, \"alici@example.com\", \n                                                                \"Ekle Testi\", \"Bu e-postada bir dosya eki bulunmaktad\u0131r.\", attachmentPath);\n        Transport.send(attachedMessage);\n        System.out.println(\"Ekleli E-posta ba\u015far\u0131yla g\u00f6nderildi!\");\n    }\n}<\/code><\/pre>\n<p>Metin i\u00e7eri\u011fi ve ekler, <code>MimeMultipart<\/code> nesnesine ayr\u0131 <code>MimeBodyPart<\/code>&#8216;lar olarak eklenir. <code>FileDataSource<\/code> ve <code>DataHandler<\/code> s\u0131n\u0131flar\u0131 dosya eklerini y\u00f6netmek i\u00e7in kullan\u0131l\u0131r.<\/p>\n<h4>G\u00fcvenlik ve Kimlik Do\u011frulama<\/h4>\n<p>*   <strong>SSL\/TLS Kullan\u0131m\u0131:<\/strong> E-posta ileti\u015fiminin g\u00fcvenli\u011fini sa\u011flamak i\u00e7in her zaman SSL (Secure Sockets Layer) veya TLS (Transport Layer Security) kullanmal\u0131s\u0131n\u0131z.<br \/>\n    *   Port 465 genellikle SSL i\u00e7in kullan\u0131l\u0131r (<code>mail.smtp.ssl.enable<\/code> \u00f6zelli\u011fini <code>true<\/code> yap\u0131n).<br \/>\n    *   Port 587 genellikle TLS (STARTTLS) i\u00e7in kullan\u0131l\u0131r (<code>mail.smtp.starttls.enable<\/code> \u00f6zelli\u011fini <code>true<\/code> yap\u0131n). Bu rehberde 587 ve STARTTLS kullan\u0131lm\u0131\u015ft\u0131r.<br \/>\n*   <strong>Uygulama \u015eifreleri (App Passwords):<\/strong> Gmail, Outlook gibi \u00e7o\u011fu e-posta sa\u011flay\u0131c\u0131s\u0131, iki fakt\u00f6rl\u00fc kimlik do\u011frulama (2FA) etkinle\u015ftirildi\u011finde do\u011frudan hesap \u015fifrenizi kullanman\u0131za izin vermez. Bunun yerine, uygulaman\u0131z i\u00e7in \u00f6zel olarak olu\u015fturulmu\u015f &#8220;Uygulama \u015eifreleri&#8221; kullanman\u0131z gerekir. Bu \u015fifreler, normal \u015fifrenizden farkl\u0131d\u0131r ve hesab\u0131n\u0131z\u0131n g\u00fcvenli\u011fini art\u0131r\u0131r.<br \/>\n*   <strong>Kimlik Bilgilerini Saklama:<\/strong> E-posta kullan\u0131c\u0131 ad\u0131 ve \u015fifresi gibi hassas bilgileri do\u011frudan kodunuzda sabit kodlamak yerine, ortam de\u011fi\u015fkenleri, g\u00fcvenli yap\u0131land\u0131rma dosyalar\u0131 veya bir s\u0131r y\u00f6neticisi (secret manager) kullanarak saklamak en iyi pratiktir.<\/p>\n<h4>Hata Ay\u0131klama ve Yayg\u0131n Sorunlar<\/h4>\n<p>E-posta g\u00f6nderme i\u015flemleri bazen karma\u015f\u0131k olabilir ve hatalarla kar\u015f\u0131la\u015fabilirsiniz.<br \/>\n*   <strong><code>session.setDebug(true);<\/code>:<\/strong> Oturum nesnesinde <code>setDebug(true)<\/code> \u00e7a\u011fr\u0131s\u0131 yapmak, JavaMail&#8217;in konsola ayr\u0131nt\u0131l\u0131 hata ay\u0131klama \u00e7\u0131kt\u0131lar\u0131 basmas\u0131n\u0131 sa\u011flar. Bu \u00e7\u0131kt\u0131lar, ba\u011flant\u0131 sorunlar\u0131, kimlik do\u011frulama hatalar\u0131 veya sunucu yan\u0131tlar\u0131 hakk\u0131nda de\u011ferli bilgiler i\u00e7erebilir.<br \/>\n*   <strong><code>AuthenticationFailedException<\/code>:<\/strong> Bu hata genellikle yanl\u0131\u015f kullan\u0131c\u0131 ad\u0131\/\u015fifre, uygulama \u015fifresi kullan\u0131lmamas\u0131 (Gmail vb. i\u00e7in) veya e-posta hesab\u0131n\u0131zda &#8220;Daha az g\u00fcvenli uygulama eri\u015fimi&#8221;nin devre d\u0131\u015f\u0131 b\u0131rak\u0131lmas\u0131 (eski Gmail ayar\u0131) durumunda ortaya \u00e7\u0131kar.<br \/>\n*   <strong><code>Connection refused<\/code> veya <code>Unknown host<\/code>:<\/strong> SMTP sunucu adresi yanl\u0131\u015f, port numaras\u0131 yanl\u0131\u015f veya sunucuya eri\u015fim g\u00fcvenlik duvar\u0131 taraf\u0131ndan engelleniyor olabilir. \u0130nternet ba\u011flant\u0131n\u0131z\u0131 ve sunucu adresini\/portunu kontrol edin.<br \/>\n*   <strong>Zaman A\u015f\u0131m\u0131 (Timeout):<\/strong> E-posta sunucusunun yan\u0131t vermemesi veya a\u011f sorunlar\u0131 nedeniyle ba\u011flant\u0131 zaman a\u015f\u0131m\u0131na u\u011frayabilir. <code>mail.smtp.connectiontimeout<\/code> ve <code>mail.smtp.timeout<\/code> \u00f6zelliklerini ayarlayarak zaman a\u015f\u0131m\u0131 s\u00fcrelerini de\u011fi\u015ftirebilirsiniz.<\/p>\n<pre><code class=\"language-java\">\/\/ Zaman a\u015f\u0131m\u0131 ayarlar\u0131 (milisaniye cinsinden)\nprops.put(\"mail.smtp.connectiontimeout\", \"5000\"); \/\/ Ba\u011flant\u0131 kurma zaman a\u015f\u0131m\u0131\nprops.put(\"mail.smtp.timeout\", \"5000\");         \/\/ Okuma\/yazma zaman a\u015f\u0131m\u0131<\/code><\/pre>\n<h3>Sonu\u00e7 ve S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h3>\n<p>JavaMail API&#8217;si, Java uygulamalar\u0131n\u0131zdan e-posta g\u00f6ndermek i\u00e7in sa\u011flam ve esnek bir \u00e7\u00f6z\u00fcm sunar. Bu rehberde, temel e-posta g\u00f6nderme i\u015fleminden HTML i\u00e7erik ve dosya ekleri eklemeye kadar bir\u00e7ok konuyu ele ald\u0131k. G\u00fcvenlik \u00f6nlemlerini takip etmek ve hata ay\u0131klama tekniklerini bilmek, ba\u015far\u0131l\u0131 bir e-posta g\u00f6nderme mekanizmas\u0131 olu\u015fturman\u0131z i\u00e7in kritik \u00f6neme sahiptir.<\/p>\n<h4>S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h4>\n<p><strong>1. JavaMail API&#8217;si \u00fccretli mi?<\/strong><br \/>\nHay\u0131r, JavaMail API&#8217;si a\u00e7\u0131k kaynakl\u0131d\u0131r ve \u00fccretsiz olarak kullan\u0131labilir.<\/p>\n<p><strong>2. Gmail ile JavaMail kullanmak i\u00e7in ne yapmal\u0131y\u0131m?<\/strong><br \/>\nGmail ile JavaMail kullan\u0131rken dikkat etmeniz gerekenler:<br \/>\n*   SMTP sunucusu: <code>smtp.gmail.com<\/code><br \/>\n*   Port: <code>587<\/code> (TLS i\u00e7in) veya <code>465<\/code> (SSL i\u00e7in)<br \/>\n*   Hesab\u0131n\u0131zda iki fakt\u00f6rl\u00fc kimlik do\u011frulama a\u00e7\u0131ksa, Google hesab\u0131n\u0131zda &#8220;Uygulama \u015eifreleri&#8221; olu\u015fturman\u0131z ve bu \u015fifreyi <code>SENDER_PASSWORD<\/code> olarak kullanman\u0131z gerekir.<br \/>\n*   E\u011fer iki fakt\u00f6rl\u00fc kimlik do\u011frulama kapal\u0131ysa ve hala sorun ya\u015f\u0131yorsan\u0131z, Gmail hesab\u0131n\u0131z\u0131n g\u00fcvenlik ayarlar\u0131nda &#8220;Daha az g\u00fcvenli uygulama eri\u015fimi&#8221;nin etkin oldu\u011fundan emin olun (bu se\u00e7enek art\u0131k Google taraf\u0131ndan \u00f6nerilmemektedir ve yak\u0131nda kald\u0131r\u0131labilir, bu y\u00fczden uygulama \u015fifresi kullanmak en iyi \u00e7\u00f6z\u00fcmd\u00fcr).<\/p>\n<p><strong>3. E-posta g\u00f6nderirken &#8220;AuthenticationFailedException&#8221; al\u0131yorum, ne yapmal\u0131y\u0131m?<\/strong><br \/>\nBu hata genellikle a\u015fa\u011f\u0131daki nedenlerden birine i\u015faret eder:<br \/>\n*   Yanl\u0131\u015f kullan\u0131c\u0131 ad\u0131 veya \u015fifre.<br \/>\n*   Gmail gibi servisler i\u00e7in uygulama \u015fifresi kullanm\u0131yorsunuz.<br \/>\n*   E-posta hesab\u0131n\u0131z\u0131n g\u00fcvenlik ayarlar\u0131, programatik eri\u015fimi engelliyor. Yukar\u0131daki Gmail \u00f6nerilerini kontrol edin.<\/p>\n<p><strong>4. HTML ve dosya eki olan bir e-postay\u0131 nas\u0131l g\u00f6nderirim?<\/strong><br \/>\nHem HTML i\u00e7eri\u011fi hem de dosya ekleri olan bir e-posta g\u00f6ndermek i\u00e7in, her ikisini de ayr\u0131 <code>MimeBodyPart<\/code> nesneleri olarak olu\u015fturup tek bir <code>MimeMultipart<\/code> nesnesine eklemeniz gerekir. <code>MimeMultipart<\/code> nesnesini daha sonra <code>MimeMessage<\/code>&#8216;\u0131n i\u00e7eri\u011fi olarak ayarlars\u0131n\u0131z.<\/p>\n<p><strong>5. JavaMail ile birden fazla al\u0131c\u0131ya nas\u0131l e-posta g\u00f6nderirim?<\/strong><br \/>\n<code>message.setRecipients()<\/code> metodunu kullan\u0131rken, al\u0131c\u0131 e-posta adreslerini virg\u00fclle ayr\u0131lm\u0131\u015f bir dize olarak <code>InternetAddress.parse()<\/code> metoduna iletebilirsiniz:<br \/>\n<code>message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(\"alici1@example.com, alici2@example.com\"));<\/code><br \/>\nAyr\u0131ca <code>Message.RecipientType.CC<\/code> (Karbon Kopya) ve <code>Message.RecipientType.BCC<\/code> (Gizli Karbon Kopya) kullanarak da al\u0131c\u0131lar ekleyebilirsiniz.<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"JavaMail ile E-posta G\u00f6nderme Rehberi: SMTP Kullanarak Java&#8217;da Mail G\u00f6nderme\nGiri\u015f\nG\u00fcn\u00fcm\u00fcz\u00fcn dijital d\u00fcnyas\u0131nda, uygulamalar\u0131n e-posta g","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1408],"tags":[],"class_list":{"0":"post-37507","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-java","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>JavaMail ile E-posta G\u00f6nderme Rehberi: SMTP Kullanarak Java&#039;da Mail G\u00f6nderme - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/javamail-ile-e-posta-gonderme-rehberi-smtp-kullanarak-javada-mail-gonderme\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"JavaMail ile E-posta G\u00f6nderme Rehberi: SMTP Kullanarak Java&#039;da Mail G\u00f6nderme\" \/>\n<meta property=\"og:description\" content=\"JavaMail ile E-posta G\u00f6nderme Rehberi: SMTP Kullanarak Java&#039;da Mail G\u00f6nderme Giri\u015f G\u00fcn\u00fcm\u00fcz\u00fcn dijital d\u00fcnyas\u0131nda, uygulamalar\u0131n e-posta g\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/javamail-ile-e-posta-gonderme-rehberi-smtp-kullanarak-javada-mail-gonderme\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-06T21:41:32+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"14 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/javamail-ile-e-posta-gonderme-rehberi-smtp-kullanarak-javada-mail-gonderme\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/javamail-ile-e-posta-gonderme-rehberi-smtp-kullanarak-javada-mail-gonderme\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"JavaMail ile E-posta G\u00f6nderme Rehberi: SMTP Kullanarak Java&#8217;da Mail G\u00f6nderme\",\"datePublished\":\"2026-01-06T21:41:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/javamail-ile-e-posta-gonderme-rehberi-smtp-kullanarak-javada-mail-gonderme\/\"},\"wordCount\":1546,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Java\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/javamail-ile-e-posta-gonderme-rehberi-smtp-kullanarak-javada-mail-gonderme\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/javamail-ile-e-posta-gonderme-rehberi-smtp-kullanarak-javada-mail-gonderme\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/javamail-ile-e-posta-gonderme-rehberi-smtp-kullanarak-javada-mail-gonderme\/\",\"name\":\"JavaMail ile E-posta G\u00f6nderme Rehberi: SMTP Kullanarak Java'da Mail G\u00f6nderme - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-01-06T21:41:32+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/javamail-ile-e-posta-gonderme-rehberi-smtp-kullanarak-javada-mail-gonderme\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/javamail-ile-e-posta-gonderme-rehberi-smtp-kullanarak-javada-mail-gonderme\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/javamail-ile-e-posta-gonderme-rehberi-smtp-kullanarak-javada-mail-gonderme\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"JavaMail ile E-posta G\u00f6nderme Rehberi: SMTP Kullanarak Java&#8217;da Mail G\u00f6nderme\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"JavaMail ile E-posta G\u00f6nderme Rehberi: SMTP Kullanarak Java'da Mail G\u00f6nderme - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/javamail-ile-e-posta-gonderme-rehberi-smtp-kullanarak-javada-mail-gonderme\/","og_locale":"tr_TR","og_type":"article","og_title":"JavaMail ile E-posta G\u00f6nderme Rehberi: SMTP Kullanarak Java'da Mail G\u00f6nderme","og_description":"JavaMail ile E-posta G\u00f6nderme Rehberi: SMTP Kullanarak Java'da Mail G\u00f6nderme Giri\u015f G\u00fcn\u00fcm\u00fcz\u00fcn dijital d\u00fcnyas\u0131nda, uygulamalar\u0131n e-posta g","og_url":"https:\/\/fatihsoysal.com\/blog\/javamail-ile-e-posta-gonderme-rehberi-smtp-kullanarak-javada-mail-gonderme\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-01-06T21:41:32+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"14 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/javamail-ile-e-posta-gonderme-rehberi-smtp-kullanarak-javada-mail-gonderme\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/javamail-ile-e-posta-gonderme-rehberi-smtp-kullanarak-javada-mail-gonderme\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"JavaMail ile E-posta G\u00f6nderme Rehberi: SMTP Kullanarak Java&#8217;da Mail G\u00f6nderme","datePublished":"2026-01-06T21:41:32+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/javamail-ile-e-posta-gonderme-rehberi-smtp-kullanarak-javada-mail-gonderme\/"},"wordCount":1546,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Java"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/javamail-ile-e-posta-gonderme-rehberi-smtp-kullanarak-javada-mail-gonderme\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/javamail-ile-e-posta-gonderme-rehberi-smtp-kullanarak-javada-mail-gonderme\/","url":"https:\/\/fatihsoysal.com\/blog\/javamail-ile-e-posta-gonderme-rehberi-smtp-kullanarak-javada-mail-gonderme\/","name":"JavaMail ile E-posta G\u00f6nderme Rehberi: SMTP Kullanarak Java'da Mail G\u00f6nderme - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-01-06T21:41:32+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/javamail-ile-e-posta-gonderme-rehberi-smtp-kullanarak-javada-mail-gonderme\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/javamail-ile-e-posta-gonderme-rehberi-smtp-kullanarak-javada-mail-gonderme\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/javamail-ile-e-posta-gonderme-rehberi-smtp-kullanarak-javada-mail-gonderme\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"JavaMail ile E-posta G\u00f6nderme Rehberi: SMTP Kullanarak Java&#8217;da Mail G\u00f6nderme"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37507","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=37507"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37507\/revisions"}],"predecessor-version":[{"id":37508,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37507\/revisions\/37508"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=37507"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=37507"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=37507"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}