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 不匹配,邮件服务器会认为电子邮件是垃圾邮件或垃圾邮件。

在这里,因为当电子邮件服务器发送反向 dns 查询未获得 IP 并认为您的邮件是垃圾邮件或垃圾邮件时,您的域 (localhost) 不是有效地址。

有关更多信息,请查看: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. 重新启动 Apache James 服务器。
  5. 启动服务器后,您将在控制台上看到以下消息:

James Mail Server 2.3.2 远程管理器服务已启动普通:4555 POP3 服务已启动普通:110 SMTP 服务已启动普通:25 NNTP 服务已启动普通:119 FetchMail 已启动

现在,运行你的程序。它应该工作!

于 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 回答