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;
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 .-\\[\\]!_@]");
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();
// 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 {