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();
}