[英]Email sending not working using Apache James
我正在尝试使用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中也添加了测试用户。 要求您同样帮助我。
我认为由此引起的问题:
电子邮件服务器在接受任何邮件之前会进行反向DNS查询。 他们检查ip来确定电子邮件来自的域以及电子邮件确实来自的ip。
如果域的ip和电子邮件发件人的ip不匹配,则邮件服务器认为电子邮件是垃圾邮件或垃圾邮件。
由于电子邮件服务器发送反向dns查询时,您的域(localhost)不是有效地址,因此无法获取IP并认为您的邮件是垃圾邮件或垃圾邮件。
有关更多信息,请检查以下内容: http : //wiki.junkemailfilter.com/index.php/Fixing_Reverse_DNS
我遇到了同样的问题。 我做了什么:
James Mail Server 2.3.2远程管理器服务已启动:4555 POP3服务已启动:110 SMTP服务已启动:25 NNTP服务已启动:119 FetchMail已启动
现在,运行您的程序。 它应该工作!
您是否添加了域“ localhost”? 如果不是,请先添加域,然后再创建用户。
$ james-cli adddomains -h 127.0.0.1本地主机
$ james-cli lisdomains -h 127.0.0.1
而且,您如何开始詹姆斯? 使用james.bat?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.