]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/email/Sendmail.java
Rename Translations menu to Language
[gigi.git] / src / org / cacert / gigi / email / Sendmail.java
index 3c915ab9229099af7d4b7f744b5e9e951ab40ef6..a65b13262d659c9ba98218f6010d8f6284751d3d 100644 (file)
@@ -3,6 +3,7 @@ package org.cacert.gigi.email;
 import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStreamReader;
+import java.io.OutputStreamWriter;
 import java.io.PrintWriter;
 import java.net.Socket;
 import java.security.GeneralSecurityException;
@@ -13,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 .-\\[\\]!_@]");
 
@@ -26,7 +35,7 @@ public class Sendmail extends EmailProvider {
 
         String[] bits = from.split(",");
 
-        try (Socket smtp = new Socket("localhost", 25); PrintWriter out = new PrintWriter(smtp.getOutputStream()); 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();
@@ -43,7 +52,7 @@ public class Sendmail extends EmailProvider {
             out.print("DATA\r\n");
             out.flush();
             readSMTPResponse(in, 250);
-            out.print("X-Mailer: CAcert.org Website\r\n");
+            out.print("X-Mailer: SomeCA.org Website\r\n");
             // if (array_key_exists("REMOTE_ADDR", $_SERVER)) {
             // out.print("X-OriginatingIP: ".$_SERVER["REMOTE_ADDR"]."\r\n");
             // }
@@ -73,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 {