2015-01-05 20 views
5

CentOS7開発ボックスにインストールされたPostfixを使用してメールを送受信するようにJavaMailを設定しようとしています。 postfixは、MAIL=/home/root/Maildirを端末に入力してから返信してからmailと入力すると、受信したメールをすべて表示できることを確認しました。しかし、私がrootとしてログインし、CentOS 7 terminalで受信した電子メールを確認すると、私はJavamailコードを実行した後、新しい電子メールはありません。 Javamailにsmtpメールを送信するにはどうすればよいですか?上記のコードが実行されるとJavaメールがポストフィックス経由でSMTPメールを送信しない

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

日食のコンソールは次のログを生成します:次のように私はクラスを呼び出す

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 

:ここ

は私のクラスである

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]localhost 
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を使用しており、[現在のバージョン](https://java.net/projects/javamail/pages/Home)にアップグレードすることができますが、あなたの問題とは何の関係もありません。 –

+1

@BillShannonありがとう!私の 'pom.xml'は私がバージョン1.5.0を使っていると言っていますが、明らかに私は新しいコードサンプルを調べるべきです。 – CodeMed

答えて

1

ログからOk: queued as DB1249A618 SMTPサーバーによってメールが正しく受信されます。 問題は、サーバー(多分スパム対策フィルタ)または間違ったメールアドレスが誤って構成されている可能性があります。

ここを見てくださいhttps://serverfault.com/questions/485505/get-postfix-to-forward-roots-mailあなたのサーバー構成を確認するのが正しいです。

+1

これはaswerです、おそらくPostfix上の問題リレーとして、あなたは正しいセクションを尋ねる必要があります。可能性のあるソリューションへのリンクで更新されました(ubuntuの場合、あまり違いはありません)。 – Lesto

+1

技術的には、それは答えです! :) – alexander

関連する問題