]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/email/Sendmail.java
upd: add properties "emailProvider.smtpHost" + "emailProvider.smtpPort"
[gigi.git] / src / org / cacert / gigi / email / Sendmail.java
index 486f3c4efeedaf767cb69d2eb699e4d1b46c35a4..78d5a0bade0f9dc52f93de4377f738a53bff3019 100644 (file)
@@ -14,11 +14,19 @@ import java.util.Locale;
 import java.util.Properties;
 import java.util.regex.Pattern;
 
+import org.cacert.gigi.util.PEM;
 import org.cacert.gigi.util.ServerConstants;
 
 public class Sendmail extends EmailProvider {
 
-    protected Sendmail(Properties props) {}
+    private final String targetHost;
+
+    private final int targetPort;
+
+    protected Sendmail(Properties props) {
+        targetHost = props.getProperty("emailProvider.smtpHost", "localhost");
+        targetPort = Integer.parseInt(props.getProperty("emailProvider.smtpPort", "25"));
+    }
 
     private static final Pattern NON_ASCII = Pattern.compile("[^a-zA-Z0-9 .-\\[\\]!_@]");
 
@@ -27,7 +35,7 @@ public class Sendmail extends EmailProvider {
 
         String[] bits = from.split(",");
 
-        try (Socket smtp = new Socket("localhost", 25); PrintWriter out = new PrintWriter(new OutputStreamWriter(smtp.getOutputStream(), "UTF-8")); BufferedReader in = new BufferedReader(new InputStreamReader(smtp.getInputStream(), "UTF-8"));) {
+        try (Socket smtp = new Socket(targetHost, targetPort); PrintWriter out = new PrintWriter(new OutputStreamWriter(smtp.getOutputStream(), "UTF-8")); BufferedReader in = new BufferedReader(new InputStreamReader(smtp.getInputStream(), "UTF-8"));) {
             readSMTPResponse(in, 220);
             out.print("HELO www.cacert.org\r\n");
             out.flush();
@@ -74,7 +82,7 @@ public class Sendmail extends EmailProvider {
             // out.print(chunk_split(base64_encode(recode("html..utf-8",
             // $message)))."\r\n.\r\n");
             headers.append("\r\n");
-            headers.append(Base64.getEncoder().encodeToString(message.getBytes("UTF-8")).replaceAll("(.{64})(?=.)", "$1\r\n"));
+            headers.append(PEM.formatBase64(message.getBytes("UTF-8")));
             headers.append("\r\n");
 
             try {