限制通过java邮件从unix机器本身发送电子邮件
我有下面的java程序,用于通过java mail API成功发送邮件,现在我的这个程序部署在名为限制通过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机器发送,该机
lonabc1123
的unix机器上,这个unix机器有一个ip11.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;iproperties.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)您的观点有效:)是的,我只是通过一些分析同意您的观点:)如果您不喜欢我的评论,我可以删除它:)