提交 17b9e22a 编写于 作者: R rpatil

8171533: Better email transfer

Reviewed-by: dfuchs, chegar, vtewari
上级 e536b08b
/* /*
* Copyright (c) 1995, 2011, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -43,6 +43,7 @@ import sun.net.TransferProtocolClient; ...@@ -43,6 +43,7 @@ import sun.net.TransferProtocolClient;
public class SmtpClient extends TransferProtocolClient { public class SmtpClient extends TransferProtocolClient {
private static int DEFAULT_SMTP_PORT = 25;
String mailhost; String mailhost;
SmtpPrintStream message; SmtpPrintStream message;
...@@ -74,6 +75,10 @@ public class SmtpClient extends TransferProtocolClient { ...@@ -74,6 +75,10 @@ public class SmtpClient extends TransferProtocolClient {
} }
public void to(String s) throws IOException { public void to(String s) throws IOException {
if (s.indexOf('\n') != -1) {
throw new IOException("Illegal SMTP command",
new IllegalArgumentException("Illegal carriage return"));
}
int st = 0; int st = 0;
int limit = s.length(); int limit = s.length();
int pos = 0; int pos = 0;
...@@ -116,16 +121,21 @@ public class SmtpClient extends TransferProtocolClient { ...@@ -116,16 +121,21 @@ public class SmtpClient extends TransferProtocolClient {
} }
public void from(String s) throws IOException { public void from(String s) throws IOException {
if (s.startsWith("<")) if (s.indexOf('\n') != -1) {
throw new IOException("Illegal SMTP command",
new IllegalArgumentException("Illegal carriage return"));
}
if (s.startsWith("<")) {
issueCommand("mail from: " + s + "\r\n", 250); issueCommand("mail from: " + s + "\r\n", 250);
else } else {
issueCommand("mail from: <" + s + ">\r\n", 250); issueCommand("mail from: <" + s + ">\r\n", 250);
}
} }
/** open a SMTP connection to host <i>host</i>. */ /** open a SMTP connection to host <i>host</i>. */
private void openServer(String host) throws IOException { private void openServer(String host) throws IOException {
mailhost = host; mailhost = host;
openServer(mailhost, 25); openServer(mailhost, DEFAULT_SMTP_PORT);
issueCommand("helo "+InetAddress.getLocalHost().getHostName()+"\r\n", 250); issueCommand("helo "+InetAddress.getLocalHost().getHostName()+"\r\n", 250);
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册