Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- > package com.ixpenseit.email;
- >
- > import java.util.Date;
- > import java.util.Properties;
- >
- > import javax.activation.CommandMap;
- > import javax.activation.DataHandler;
- > import javax.activation.DataSource;
- > import javax.activation.FileDataSource;
- > import javax.activation.MailcapCommandMap;
- > import javax.mail.BodyPart;
- > import javax.mail.MessagingException;
- > import javax.mail.Multipart;
- > import javax.mail.PasswordAuthentication;
- > import javax.mail.Session;
- > import javax.mail.Transport;
- > import javax.mail.internet.AddressException;
- > import javax.mail.internet.InternetAddress;
- > import javax.mail.internet.MimeBodyPart;
- > import javax.mail.internet.MimeMessage;
- > import javax.mail.internet.MimeMultipart;
- >
- > public class Mail extends javax.mail.Authenticator {
- > private String _user;
- > private String _pass;
- >
- > private String[] _to;
- > private String _from;
- >
- > private String _port;
- > private String _sport;
- >
- > private String _host;
- >
- > private String _subject;
- > private String _body;
- >
- > private boolean _auth;
- >
- > private Multipart _multipart;
- >
- > private Mail() {
- > _auth = true; // smtp authentication - default on
- > _multipart = new MimeMultipart();
- > }
- >
- > public Mail(String smtpserver, String smtpport, String
- > smtpsocketfactoryport) {
- > _host = smtpserver; // default smtp server
- > _port = smtpport; // default smtp port
- > _sport = smtpsocketfactoryport; // default socketfactory port
- > _auth = true; // smtp authentication - default on
- > _multipart = new MimeMultipart();
- > MailcapCommandMap mc = (MailcapCommandMap) CommandMap
- > .getDefaultCommandMap();
- > mc
- > .addMailcap("text/html;; x-java-content-handler=com.sun.mail.handlers.text_html");
- > mc
- > .addMailcap("text/xml;; x-java-content-handler=com.sun.mail.handlers.text_xml");
- > mc
- > .addMailcap("text/plain;; x-java-content-handler=com.sun.mail.handlers.text_plain");
- > mc
- > .addMailcap("multipart/*;; x-java-content-handler=com.sun.mail.handlers.multipart_mixed");
- > mc
- > .addMailcap("message/rfc822;; x-java-content-handler=com.sun.mail.handlers.message_rfc822");
- > CommandMap.setDefaultCommandMap(mc);
- >
- > }
- >
- > public void setCredential(String username, String password) {
- > _user = username;
- > _pass = password;
- > }
- >
- > public boolean send() throws AddressException, MessagingException
- > {
- > Properties props = _setProperties();
- >
- > if (Utility.isValidString(_user) && Utility.isValidString(_pass)
- > && _to != null && Utility.isValidString(_from)
- > && Utility.isValidString(_body)
- > && Utility.isValidString(_subject) &&
- > _to.length > 0
- >
- > ) {
- > Session session = Session.getInstance(props, this);
- >
- > MimeMessage msg = new MimeMessage(session);
- > msg.setFrom(new InternetAddress(_from));
- >
- > InternetAddress[] addressTo = new InternetAddress[_to.length];
- > for (int i = 0; i < _to.length; i++) {
- > addressTo[i] = new InternetAddress(_to[i]);
- > }
- > msg.setRecipients(MimeMessage.RecipientType.TO,
- > addressTo);
- >
- > msg.setSubject(_subject);
- > msg.setSentDate(new Date());
- >
- > // setup message body
- > BodyPart messageBodyPart = new MimeBodyPart();
- > messageBodyPart.setText(_body);
- > _multipart.addBodyPart(messageBodyPart);
- >
- > // Put parts in message
- > msg.setContent(_multipart);
- >
- > // send email
- > Transport.send(msg);
- >
- > return true;
- > } else {
- > return false;
- > }
- > }
- >
- > public void setEmail(String[] to, String from, String subject, String
- > body) {
- > _to = to;
- > _body = body;
- > _subject = subject;
- > _from = from;
- >
- > }
- >
- > public void addAttachment(String filename) throws Exception {
- > BodyPart messageBodyPart = new MimeBodyPart();
- > DataSource source = new FileDataSource(filename);
- > messageBodyPart.setDataHandler(new
- > DataHandler(source));
- > messageBodyPart.setFileName(filename);
- > _multipart.addBodyPart(messageBodyPart);
- > }
- >
- > public void addAttachment(String folder, String filename) throws
- > Exception {
- > BodyPart messageBodyPart = new MimeBodyPart();
- > DataSource source = new FileDataSource(folder + "" +
- > filename);
- > messageBodyPart.setDataHandler(new
- > DataHandler(source));
- > messageBodyPart.setFileName(filename);
- > _multipart.addBodyPart(messageBodyPart);
- > }
- >
- > @Override
- > public PasswordAuthentication getPasswordAuthentication() {
- > return new PasswordAuthentication(_user, _pass);
- > }
- >
- > private Properties _setProperties() {
- > Properties props = new Properties();
- > props.put("mail.smtp.host", _host);
- > props.put("mail.debug", "true");
- > if (_auth) {
- > props.put("mail.smtp.auth", "true");
- > }
- > props.put("mail.smtp.port", _port);
- > props.put("mail.smtp.socketFactory.port",
- > _sport);
- > props.put("mail.smtp.socketFactory.class",
- > "javax.net.ssl.SSLSocketFactory");
- > props.put("mail.smtp.socketFactory.fallback",
- > "false");
- > return props;
- > }
- >
- > }
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- sendEmail();
- }
- private void sendEmail() {
- //Mail m = new Mail("smtp.gmail.com", "465", "465");
- Mail m = new Mail("smtp.dummy.com", "27", "27");
- m.setCredential("abc@dummy", "dummy");
- String[] toArr = { "to@gmail.com" };
- m.setEmail(toArr, "from@no-spam.com", "Auto Generated Expense Report",
- "Auto Generated Body.");
- try {
- if (m.send()) {
- Toast.makeText(Email.this, "Email was sent successfully.",
- Toast.LENGTH_LONG).show();
- } else {
- Toast.makeText(Email.this, "Email was not sent.",
- Toast.LENGTH_LONG).show();
- }
- } catch (AddressException e) {
- // TODO Auto-generated catch block
- Log.e("MailApp", "Could not send email", e);
- } catch (MessagingException e) {
- // TODO Auto-generated catch block
- Log.e("MailApp", "Could not send email", e);
- }
Add Comment
Please, Sign In to add comment