Java Examples for org.apache.commons.net.smtp.AuthenticatingSMTPClient

The following java examples will help you to understand the usage of org.apache.commons.net.smtp.AuthenticatingSMTPClient. These source code samples are taken from different open source projects.

Example 1
Project: smtp-sender-master  File: SmtpService.java View source code
public Set<String> send(InputStream messageStream) throws IOException {
    AuthenticatingSMTPClient smtpClient = null;
    try {
        smtpClient = this.connect();
        this.auth(smtpClient);
        Set<String> failReceivers = this.processEnvelope(smtpClient);
        if (this.rcptTos.size() == failReceivers.size()) {
            throw new IOException("not allowed all rcpt to !");
        }
        this.writeData(smtpClient, messageStream);
        return failReceivers;
    } catch (Throwable e) {
        throw new IOException("send fail ! - " + e.getMessage() + " - RECV:" + this.rcptTos, e);
    } finally {
        this.close(smtpClient);
    }
}
Example 2
Project: network-monitor-master  File: Emailer.java View source code
/**
     * Sends an e-mail in UTF-8 encoding.
     *
     * @param protocol    this has been tested with "TLS", "SSL", and null.
     * @param attachments optional attachments to include in the mail.
     * @param debug       if true, details about the smtp commands will be logged to stdout.
     */
static void sendEmail(String protocol, String server, int port, String user, String password, String from, String[] recipients, String subject, String body, Set<File> attachments, boolean debug) throws Exception {
    // Set up the mail connectivity
    final AuthenticatingSMTPClient client;
    if (protocol == null)
        client = new AuthenticatingSMTPClient();
    else
        client = new AuthenticatingSMTPClient(protocol);
    if (debug)
        client.addProtocolCommandListener(new PrintCommandListener(new PrintWriter(System.out), true));
    client.setDefaultTimeout(SMTP_TIMEOUT_MS);
    client.setCharset(Charset.forName(ENCODING));
    client.connect(server, port);
    checkReply(client);
    client.helo("[" + client.getLocalAddress().getHostAddress() + "]");
    checkReply(client);
    if ("TLS".equals(protocol)) {
        if (!client.execTLS()) {
            checkReply(client);
            throw new RuntimeException("Could not start tls");
        }
    }
    client.auth(AuthenticatingSMTPClient.AUTH_METHOD.LOGIN, user, password);
    checkReply(client);
    // Set up the mail participants
    client.setSender(from);
    checkReply(client);
    for (String recipient : recipients) {
        client.addRecipient(recipient);
        checkReply(client);
    }
    // Set up the mail content
    Writer writer = client.sendMessageData();
    SimpleSMTPHeader header = new SimpleSMTPHeader(from, recipients[0], subject);
    for (int i = 1; i < recipients.length; i++) header.addCC(recipients[i]);
    // Just plain text mail: no attachments
    if (attachments == null || attachments.isEmpty()) {
        header.addHeaderField("Content-Type", "text/plain; charset=" + ENCODING);
        writer.write(header.toString());
        writer.write(body);
    } else // Mail with attachments
    {
        String boundary = UUID.randomUUID().toString().replaceAll("-", "").substring(0, 28);
        header.addHeaderField("Content-Type", "multipart/mixed; boundary=" + boundary);
        writer.write(header.toString());
        // Write the main text message
        writer.write("--" + boundary + "\n");
        writer.write("Content-Type: text/plain; charset=" + ENCODING + "\n\n");
        writer.write(body);
        writer.write("\n");
        // Write the attachments
        appendAttachments(writer, boundary, attachments);
        writer.write("--" + boundary + "--\n\n");
    }
    writer.close();
    if (!client.completePendingCommand()) {
        throw new RuntimeException("Could not send mail");
    }
    client.logout();
    client.disconnect();
}