在发送邮件期间有没有办法在javamail中更改源端口?

时间:2015-01-28 10:23:13

标签: java sockets javamail

有没有办法在发送邮件时更改javamail中的source-port?在Transport.send()中,javamail使用套接字默认端口作为源端口来发送邮件。我可以更改源端口吗?

3 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

是的,但是要使其正常工作,需要设置以下两个属性:

mail.smtp.localaddressmail.smtp.localport

这是由于com.sun.mail.util.SocketFetcher中的底层JavaMail实现仅在设置了mail.smtp.localport时才使用mail.smtp.localaddress属性。

答案 2 :(得分:-1)

发送邮件时无法更改源端口。但是有各种Sub类的传输提供了用于发送邮件的协议特定包装器。例如,SMTPTransport是用于SMTP协议的类。使用像

这样的东西
SMTPTransport transport = (SMTPTransport) session.getTransport("smtp");    
transport.connect();    
transport.sendMessage(msg, msg.getRecipients(Message.RecipientType.TO));