2015-01-05 23 views
5

Postfix, CentOS7 geliştirme kutusunda yüklü olan e-postaları göndermek ve almak için JavaMail kurmak çalışıyorum. postfix'un, MAIL=/home/root/Maildir yazarak alınan e-postaları görüntüleyebildiğini onayladıktan sonra, geri dönüş ve ardından kullanıcı hesabı için alınan tüm e-postaları listeleyen mail. Ancak, root olarak giriş yaptığımda ve CentOS 7 terminal numaralı telefondan alınan e-postaları kontrol ettiğimde, aşağıda açıklandığı gibi Javamail kodumu çalıştırdıktan sonra yeni e-postalar yok. smtp e-postasını göndermek için Javamail'u nasıl edinebilirim? Yukarıdaki kod çalıştırıldığındaJavaMail postfix üzerinden SMTP e-postası göndermiyor

TestEmail em = new TestEmail(); 
em.send(); 

Tutulma konsol aşağıdaki günlükleri üretir: şu şekildedir: Ben sınıf aramak

import java.util.*; 
import javax.mail.*; 
import javax.mail.internet.*; 
import javax.activation.*; 

//Send a simple, single part, text/plain e-mail 
public class TestEmail { 

    public void send(){ 
    // SUBSTITUTE YOUR EMAIL ADDRESSES HERE! 
    String to = "[email protected]"; 
    String from = "[email protected]"; 
    // SUBSTITUTE YOUR ISP'S MAIL SERVER HERE! 
    String host = "localhost"; 

    // Create properties, get Session 
    Properties props = new Properties(); 

    //http://docs.oracle.com/javaee/6/api/javax/mail/Session.html 
    // If using static Transport.send(), 
    // need to specify which host to send it to 
    props.put("mail.smtp.host", host); 
    // To see what is going on behind the scene 
    props.put("mail.debug", "true"); 
    Session session = Session.getInstance(props); 

    try { 
     // Instantiate a message 
     Message msg = new MimeMessage(session); 

     //Set message attributes 
     msg.setFrom(new InternetAddress(from)); 
     InternetAddress[] address = {new InternetAddress(to)}; 
     msg.setRecipients(Message.RecipientType.TO, address); 
     msg.setSubject("A new record was just added."); 
     msg.setSentDate(new Date()); 

     // Set message content 
     msg.setText("This is a test of sending a " + 
        "plain text e-mail through Java.\n" + 
        "Here is line 2."); 

     //Send the message 
     Transport.send(msg); 
    } 
    catch (MessagingException mex) { 
     // Prints all nested (chained) exceptions as well 
     mex.printStackTrace(); 
    } 
} 
}//End of class 

: Burada

benim sınıftır

DEBUG: JavaMail version 1.5.0-b01 
DEBUG: successfully loaded resource: /META-INF/javamail.default.providers 
DEBUG: Tables of loaded providers 
DEBUG: Providers Listed By Class Name: {com.sun.mail.smtp.SMTPSSLTransport=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Oracle], com.sun.mail.smtp.SMTPTransport=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle], com.sun.mail.imap.IMAPSSLStore=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Oracle], com.sun.mail.pop3.POP3SSLStore=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Oracle], com.sun.mail.imap.IMAPStore=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Oracle], com.sun.mail.pop3.POP3Store=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Oracle]} 
DEBUG: Providers Listed By Protocol: {imaps=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Oracle], imap=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Oracle], smtps=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Oracle], pop3=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Oracle], pop3s=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Oracle], smtp=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle]} 
DEBUG: successfully loaded resource: /META-INF/javamail.default.address.map 
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle] 
DEBUG SMTP: useEhlo true, useAuth false 
DEBUG SMTP: trying to connect to host "localhost", port 25, isSSL false 
220 localhost.localdomain ESMTP Postfix 
DEBUG SMTP: connected to host "localhost", port: 25 

EHLO localhost.localdomain 
250-localhost.localdomain 
250-PIPELINING 
250-SIZE 10240000 
250-VRFY 
250-ETRN 
250-ENHANCEDSTATUSCODES 
250-8BITMIME 
250 DSN 
DEBUG SMTP: Found extension "PIPELINING", arg "" 
DEBUG SMTP: Found extension "SIZE", arg "10240000" 
DEBUG SMTP: Found extension "VRFY", arg "" 
DEBUG SMTP: Found extension "ETRN", arg "" 
DEBUG SMTP: Found extension "ENHANCEDSTATUSCODES", arg "" 
DEBUG SMTP: Found extension "8BITMIME", arg "" 
DEBUG SMTP: Found extension "DSN", arg "" 
DEBUG SMTP: use8bit false 
MAIL FROM:<[email protected]> 
250 2.1.0 Ok 
RCPT TO:<[email protected]> 
250 2.1.5 Ok 
DEBUG SMTP: Verified Addresses 
DEBUG SMTP: [email protected] 
DATA 
354 End data with <CR><LF>.<CR><LF> 
Date: Mon, 5 Jan 2015 13:12:02 -0800 (PST) 
From: [email protected] 
To: [email protected] 
Message-ID: <[email protected]in> 
Subject: A new record was just added. 
MIME-Version: 1.0 
Content-Type: text/plain; charset=us-ascii 
Content-Transfer-Encoding: 7bit 

This is a test of sending a plain text e-mail through Java. 
Here is line 2. 
. 
250 2.0.0 Ok: queued as DB1249A618 
QUIT 
221 2.0.0 Bye 
sessionID is: 0816C244BDBAAD890D82138DC3801962 
+1

JavaMail'in oldukça eski bir sürümünü kullandığınızdan ve eminim [güncel sürüm] (https://java.net/projects/javamail/pages/Home) sürümüne yükseltmek isteyebileceğinizden emin olun. senin probleminle ilgisi yok. –

+1

@BillShannon Teşekkür ederiz! Benim 'pom.xml' sürüm 1.5.0 kullanıyorum, ama görünüşe göre daha yeni kod örneklerine bakmalıyım. – CodeMed

cevap

1

günlüğünden Ok: queued as DB1249A618 posta SMTP sunucusu tarafından doğru olarak geri alındı. , bu nedenle sorun yanlış yapılandırılmış sunucu (belki bir antispam filtresi) veya yanlış bir posta adresi olabilir.

Sunucu yapılandırmanızın doğru olduğunu kontrol etmek için buraya tıklayın https://serverfault.com/questions/485505/get-postfix-to-forward-roots-mail.

+1

bu bir postadır, Muhtemelen Postfix'deki sorun rölesinde olduğu gibi, doğru bölümü sormanız gerekir. Muhtemel çözüm için bir bağlantı ile güncellendi (ubuntu için, ama çok fazla farklı olmamalıdır) – Lesto

+1

Teknik olarak, bu bir cevap! :) – alexander