changeset 12279:f672cb804684

8171533: Better email transfer Reviewed-by: dfuchs, chegar, vtewari
author rpatil
date Mon, 27 Feb 2017 19:19:17 +0530
parents 81ddd5fc5a4e
children 1e804a6eab74
files src/share/classes/sun/net/smtp/SmtpClient.java
diffstat 1 files changed, 14 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/classes/sun/net/smtp/SmtpClient.java	Sat Feb 25 09:50:28 2017 +0530
+++ b/src/share/classes/sun/net/smtp/SmtpClient.java	Mon Feb 27 19:19:17 2017 +0530
@@ -1,5 +1,5 @@
 /*
- * 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.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -43,6 +43,7 @@
 
 public class SmtpClient extends TransferProtocolClient {
 
+    private static int DEFAULT_SMTP_PORT = 25;
     String mailhost;
     SmtpPrintStream message;
 
@@ -74,6 +75,10 @@
     }
 
     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 limit = s.length();
         int pos = 0;
@@ -116,16 +121,21 @@
     }
 
     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);
-        else
+        } else {
             issueCommand("mail from: <" + s + ">\r\n", 250);
+        }
     }
 
     /** open a SMTP connection to host <i>host</i>. */
     private void openServer(String host) throws IOException {
         mailhost = host;
-        openServer(mailhost, 25);
+        openServer(mailhost, DEFAULT_SMTP_PORT);
         issueCommand("helo "+InetAddress.getLocalHost().getHostName()+"\r\n", 250);
     }