to allow setting a target SMTP server.
// TODO caching?
try {
- String concat = "group_concat(concat('/', `name`, '=', REPLACE(REPLACE(value, '\\\\', '\\\\\\\\'), '/', '\\\\/')))";
+ String concat = "string_agg(concat('/', `name`, '=', REPLACE(REPLACE(value, '\\\\', '\\\\\\\\'), '/', '\\\\/')), '')";
GigiPreparedStatement ps = DatabaseConnection.getInstance().prepare("SELECT certs.id, " + concat + " as subject, md, csr_name, crt_name,memid, profile, certs.serial FROM `certs` LEFT JOIN `certAvas` ON `certAvas`.`certId`=certs.id WHERE certs.id=? GROUP BY certs.id");
ps.setInt(1, id);
GigiResultSet rs = ps.executeQuery();
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(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();
}
private void initSelfsign() throws GeneralSecurityException, CertificateException, IOException, NoSuchAlgorithmException, InvalidKeyException, NoSuchProviderException, SignatureException {
+ assumeNotNull(getTestProps().getProperty("emailProvider.smtpHost"), getTestProps().getProperty("emailProvider.smtpPort"));
Properties prop = new Properties();
prop.setProperty("emailProvider", "org.cacert.gigi.email.Sendmail");
+ prop.setProperty("emailProvider.smtpHost", getTestProps().getProperty("emailProvider.smtpHost"));
+ prop.setProperty("emailProvider.smtpPort", getTestProps().getProperty("emailProvider.smtpPort"));
KeyPair kp = generateKeypair();
X509CertInfo info = new X509CertInfo();
// Add all mandatory attributes