1

apache james を使用してメールを送信しようとしていますが、メールが配信されません。以下は私のコードです。

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

public class test {

    public static void main(String args[]) throws Exception {

        String user = "test";  

        String password = "test"; 
        String fromAddress = "test@localhost";   
        String toAddress = "test@gmail.com";        
        Properties properties = new Properties();     
        properties.put("mail.smtp.host", "localhost");     
        properties.put("mail.smtp.port", "25");     
        properties.put("mail.smtp.username", user);     
        properties.put("mail.smtp.password", password);
        properties.put("mail.transport.protocol", "smtp"); 

        Session session = Session.getDefaultInstance(properties, null);      

        try             
        {         
            Message message = new MimeMessage(session);         
            message.setFrom(new InternetAddress(fromAddress));         
            message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(toAddress));          
            message.setSubject("Email from our JAMEs");         
            message.setText("hiiiiii!!");         
            Transport.send(message);          
            System.out.println("Email sent");     
        }     
        catch (MessagingException e)     
        {        
            e.printStackTrace();     
        } 
        }
}

また、テストユーザーは、パスワードテストを持つApache jamesに追加されます。同じように私を助けてください。

4

3 に答える 3

1

これが原因で問題が発生したと思います:

電子メールサーバーは、メールを受け入れる前にリバース DNS クエリを実行します。彼らは、電子メールが送信されたドメインの IP と、電子メールが実際に送信された IP を確認します。

ドメインの ip とメール送信者の ip が一致しない場合、メール サーバーはメールが迷惑メールまたはスパムであると見なします。

ここでは、ドメイン (localhost) が有効なアドレスではないため、メール サーバーがリバース DNS クエリを送信しても IP が取得されず、メールがジャンクまたはスパムであると見なされます。

詳細については、これを確認してください: http://wiki.junkemailfilter.com/index.php/Fixing_Reverse_DNS

于 2012-12-04T15:42:15.123 に答える
0

私も同じ問題に直面しました。私がしたこと:

  1. パスに移動します:\ apps \ james \ conf
  2. ファイル名「james-fetchmail.xml」を編集するために開きます
  3. 「fetchmail」をfalseからtrueに変更します。
  4. ApacheJamesサーバーを再起動します。
  5. サーバーを起動すると、コンソールに次のメッセージが出力されます。

James Mail Server 2.3.2リモートマネージャサービスがプレーンに開始されました:4555POP3サービスがプレーンに開始されました:110SMTPサービスがプレーンに開始されました:25NNTPサービスがプレーンに開始されました:119FetchMailが開始されました

次に、プログラムを実行します。うまくいくはずです!

于 2012-04-23T10:57:43.493 に答える
0

ドメイン「localhost」を追加しましたか? そうでない場合は、最初にドメインを追加してから、ユーザーを作成します。

$ james-cli AddDomain -h 127.0.0.1 localhost

ドメインが存在するかどうかを確認する

$ james-cli ListDomains -h 127.0.0.1

ジェームスを始めたきっかけは?james.bat を使用していますか?

于 2014-08-22T13:17:57.627 に答える