限制通过java邮件从unix机器本身发送电子邮件

限制通过java邮件从unix机器本身发送电子邮件,java,jakarta-mail,Java,Jakarta Mail,我有下面的java程序,用于通过java mail API成功发送邮件,现在我的这个程序部署在名为lonabc1123的unix机器上,这个unix机器有一个ip11.111.11.11,现在我想在这里限制一些事情,也就是说,只有当程序在这个unix机器上运行时,才会发送java邮件itsef(lonabc1123)。现在,除了这个unix机器,任何人都可以发送邮件。我的意思是,有些人也可以从其他unix机器发送邮件 因此,请告知我,我知道邮件将从名为lonabc1123的unix机器发送,该机

我有下面的java程序,用于通过java mail API成功发送邮件,现在我的这个程序部署在名为
lonabc1123
的unix机器上,这个unix机器有一个ip
11.111.11.11
,现在我想在这里限制一些事情,也就是说,只有当程序在这个unix机器上运行时,才会发送java邮件itsef(lonabc1123)。现在,除了这个unix机器,任何人都可以发送邮件。我的意思是,有些人也可以从其他unix机器发送邮件

因此,请告知我,我知道邮件将从名为lonabc1123的unix机器发送,该机器具有IP 11.111.11.11,除此之外,没有人可以从任何其他机器发送邮件,因此我如何扭曲下面的代码,以便邮件只能从一个名为lonabc1123的unix机器发送,该机器具有IP 11.111.11.11,我可以进行基于ip的检查吗?我将在发送邮件之前检查ip。请告知

static String smtpHost = "11.162.90.80";
static String mailSmtpPort = "1965";
static String mailTo[] = {"ena@abs.com" };
static String mailCc[] = {"ena@abs.com" };
static String bccAddress[] = null;

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



    postEmail(mailTo, mailCc, "k",
            "testSubject", "Body123", smtpHost , mailSmtpPort);


}  



public static  void postEmail(String mailTo[], String mailCc[], String from, String subject, String text, String smtpHost, String mailSmtpPort ) throws Exception, DocumentException, IOException {
    try {
        Properties properties = new Properties();
        properties.put("mail.smtp.host", smtpHost);
        properties.put("mail.store.protocol", "imaps");
        properties.put("mailSmtpPort", mailSmtpPort);
        //obtaining the session
        Session emailSession = Session.getDefaultInstance(properties);

        //Enable for debuging 
        emailSession.setDebug(true);

        Message emailMessage = new MimeMessage(emailSession);


        if(mailTo!= null){
            InternetAddress[] addressTo = new InternetAddress[mailTo.length];
            for (int i = 0; i < mailTo.length; i++) {
                addressTo[i] = new InternetAddress(mailTo[i]);
            }
            emailMessage.setRecipients(RecipientType.TO, addressTo);
        }

        InternetAddress[] addresscc = new InternetAddress[mailCc.length];
        for (int i = 0; i < mailCc.length; i++) {
            addresscc[i] = new InternetAddress(mailCc[i]);
        }
        emailMessage.setRecipients(RecipientType.CC, addresscc);

         emailMessage.setFrom(new InternetAddress(from));
         emailMessage.setSubject(subject);

         emailMessage.setContent(text, "text/html");


          //Create the message part
        BodyPart messageBodyPart = new MimeBodyPart();
        messageBodyPart.setContent(text, "text/html");

               messageBodyPart.setText(text);

         // Create a multipart message
        Multipart multipart = new MimeMultipart();
         multipart.addBodyPart(messageBodyPart);

          //  attachment part
             MimeBodyPart attachPart = new MimeBodyPart();
             String filename = "c:\\swap.xls";





            multipart.addBodyPart(attachPart);
           // Send the complete message parts
            emailMessage.setContent(multipart);


      Transport.send(emailMessage);
    }    catch (AddressException e) {
        e.printStackTrace();
    } catch(MessagingException messagingException) {
        messagingException.printStackTrace();
        throw new Exception(messagingException.getMessage());
    }
}
静态字符串smtpHost=“11.162.90.80”; 静态字符串mailsmtport=“1965”; 静态字符串mailTo[]={”ena@abs.com" }; 静态字符串mailCc[]={”ena@abs.com" }; 静态字符串bccadAddress[]=null; 公共静态void main(字符串[]args)引发异常、IOException、异常{ postmail(mailTo,mailCc,“k”, “testSubject”、“Body123”、smtpHost、mailSmtpPort); } public static void postmail(String mailTo[],String mailCc[],String from,String subject,String text,String smtpHost,String mailsmtport)引发异常,DocumentException,IOException{ 试一试{ 属性=新属性(); properties.put(“mail.smtp.host”,smtpHost); properties.put(“mail.store.protocol”、“imaps”); properties.put(“mailSmtpPort”,mailSmtpPort); //获取会话 会话emailSession=Session.getDefaultInstance(属性); //启用以进行调试 emailSession.setDebug(true); Message emailMessage=新的mimessage(emailSession); if(mailTo!=null){ InternetAddress[]addressTo=新的InternetAddress[mailTo.length]; for(int i=0;i您试图将端口更改为1965,但使用了错误的属性:
properties.put(“mailSmtpPort”,mailSmtpPort)


正确的属性是:
properties.put(“mail.smtp.port”,mailSmtpPort)

您试图将端口更改为1965,但使用了错误的属性:
properties.put(“mailSmtpPort”,mailSmtpPort)


正确的属性是:
properties.put(“mail.smtp.port”,mailSmtpPort)

同意,错误状态为无法连接到。。。端口25,当OP尝试在端口
mailSmtpPort=“1965”
上连接时,这意味着它仍然使用默认的SMTP端口(25)。您的观点是有效的:)是的,我只是通过一些分析同意您的观点:)如果您不喜欢我的评论,我可以删除它:)同意,错误状态为无法连接到。。。端口25,当OP尝试连接端口
mailSmtpPort=“1965”
时,这意味着它仍然使用默认的SMTP端口(25)您的观点有效:)是的,我只是通过一些分析同意您的观点:)如果您不喜欢我的评论,我可以删除它:)