Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Sender extends Activity {
- Button Send;
- TextView text;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_sender);
- Send = (Button) findViewById(R.id.mail);
- text = (TextView) findViewById(R.id.textView1);
- StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
- .permitAll().build();
- StrictMode.setThreadPolicy(policy);
- Send.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- new SendMail().execute();
- }
- });
- }
- private class SendMail extends AsyncTask<String, Void, Integer>
- {
- ProgressDialog pd = null;
- String error = null;
- Integer result;
- @Override
- protected void onPreExecute() {
- // TODO Auto-generated method stub
- super.onPreExecute();
- pd = new ProgressDialog(Sender.this);
- pd.setTitle("Sending Mail");
- pd.setMessage("Please wait...");
- pd.setCancelable(false);
- pd.show();
- }
- @Override
- protected Integer doInBackground(String... params) {
- // TODO Auto-generated method stub
- MailSender sender = new MailSender("me@mysmtp.com", "password");
- sender.setTo(new String[]{"you@mysmtp.com", "me@gmail.com"});
- sender.setFrom("me@mysmtp.com");
- sender.setSubject("Test mail");
- sender.setBody("This is the mail body");
- try {
- if(sender.send()) {
- System.out.println("Message sent");
- return 1;
- } else {
- return 2;
- }
- } catch (Exception e) {
- error = e.getMessage();
- Log.e("SendMail", e.getMessage(), e);
- }
- return 3;
- }
- protected void onPostExecute(Integer result) {
- pd.dismiss();
- if(error!=null) {
- text.setText(error);
- }
- if(result==1) {
- Toast.makeText(Sender.this,
- "Email was sent successfully.", Toast.LENGTH_LONG)
- .show();
- } else if(result==2) {
- Toast.makeText(Sender.this,
- "Email was not sent.", Toast.LENGTH_LONG).show();
- } else if(result==3) {
- Toast.makeText(Sender.this,
- "There was a problem sending the email.",
- Toast.LENGTH_LONG).show();
- }
- }
- }
- }
- public class MailSender extends Authenticator {
- private String user;
- private String password;
- 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 boolean debuggable;
- private Multipart multi;
- public MailSender(){
- host = "web.mysmtp.com";
- port = "25";
- sport = "25";
- user = "";
- password = "";
- from = "";
- subject = "";
- body = "";
- debuggable = false;
- auth = true;
- multi = new MimeMultipart();
- // There is something wrong with MailCap, javamail can not find a handler for the multipart/mixed part, so this bit needs to be added.
- MailcapCommandMap mc = (MailcapCommandMap) CommandMap.getDefaultCommandMap();
- mc.addMailcap("text/html;; x-java-content-handler=com.sun.mail.handlers.text_html");
- 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 MailSender(String user, String password){
- this();
- this.user = user;
- this.password = password;
- }
- public boolean send() throws Exception {
- Properties props = setProperties();
- try{
- Session session = Session.getInstance(props, this);
- session.setDebug(true);
- 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());
- BodyPart messageBodyPart = new MimeBodyPart();
- messageBodyPart.setText(body);
- multi.addBodyPart(messageBodyPart);
- msg.setContent(multi);
- Transport transport = session.getTransport("smtps");
- transport.connect(host, 25, user, password);
- transport.sendMessage(msg, msg.getAllRecipients());
- transport.close();
- return true;
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }
- }
- public void addAttachment(String filename) throws Exception {
- BodyPart messageBodyPart = new MimeBodyPart();
- DataSource source = new FileDataSource(filename);
- messageBodyPart.setDataHandler(new DataHandler(source));
- messageBodyPart.setFileName(filename);
- multi.addBodyPart(messageBodyPart);
- }
- @Override
- public PasswordAuthentication getPasswordAuthentication() {
- return new PasswordAuthentication(user, password);
- }
- private Properties setProperties() {
- Properties props = new Properties();
- props.put("mail.smtp.host", host);
- if(debuggable) {
- 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 setTo(String[] toAddress) {
- this.to = toAddress;
- }
- public void setFrom(String fromAddress) {
- this.from = fromAddress;
- }
- public void setSubject(String subject) {
- this.subject = subject;
- }
- public void setBody(String body) {
- this.body = body;
- }
- }
- 08-15 11:21:37.284: W/System.err(2553): javax.net.ssl.SSLHandshakeException: javax.net.ssl.SSLProtocolException: SSL handshake aborted: ssl=0x5c075548: Failure in SSL library, usually a protocol error
- 08-15 11:21:37.291: W/System.err(2553): Caused by: javax.net.ssl.SSLHandshakeException: javax.net.ssl.SSLProtocolException: SSL handshake aborted: ssl=0x5c075548: Failure in SSL library, usually a protocol error
- 08-15 11:21:37.299: W/System.err(2553): Caused by: javax.net.ssl.SSLProtocolException: SSL handshake aborted: ssl=0x5c075548: Failure in SSL library, usually a protocol error
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement