Java tutorial
/** * Copyright 2010 Vstra Gtalandsregionen * * This library is free software; you can redistribute it and/or modify * it under the terms of version 2.1 of the GNU Lesser General Public * License as published by the Free Software Foundation. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307 USA * */ package se.vgregion.mobile.services; import java.util.Properties; import javax.mail.Message; import javax.mail.Message.RecipientType; import javax.mail.MessagingException; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.AddressException; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import se.vgregion.mobile.types.ErrorReport; @Service public class SmtpErrorReportService implements ErrorReportService { private final Logger log = LoggerFactory.getLogger(SmtpErrorReportService.class); private String from; private String to; private String host; private int port; private String subject = "Felrapport av skrivare"; private String body = "Felrapport fr skrivare %1s:\n%2s\n\nRapporterat av: %3s"; @Override public void report(ErrorReport report) { Properties props = new Properties(); props.put("mail.smtp.host", host); props.put("mail.smtp.port", port); Session mailSession = Session.getDefaultInstance(props); Message simpleMessage = new MimeMessage(mailSession); try { InternetAddress fromAddress = new InternetAddress(from); InternetAddress toAddress = new InternetAddress(to); simpleMessage.setFrom(fromAddress); simpleMessage.setRecipient(RecipientType.TO, toAddress); simpleMessage.setSubject(subject); String text = String.format(body, report.getPrinter().getName(), report.getDescription(), report.getReporter()); simpleMessage.setText(text); Transport.send(simpleMessage); } catch (MessagingException e) { throw new RuntimeException("Failed sending error report via mail", e); } } public String getFrom() { return from; } public void setFrom(String from) { this.from = from; } public String getTo() { return to; } public void setTo(String to) { this.to = to; } public String getHost() { return host; } public void setHost(String host) { this.host = host; } public int getPort() { return port; } public void setPort(int port) { this.port = port; } public String getSubject() { return subject; } public void setSubject(String subject) { this.subject = subject; } public String getBody() { return body; } public void setBody(String body) { this.body = body; } }