如何在不使用intent的情况下使用组织域而不是android中的anyemail@xyz.com发送邮件?

时间:2019-07-14 08:35:39

标签: android email jsse

我在android java中有代码,可以在其中使用gmail ID发送邮件,但是当我使用组织ID(即我的Outlook电子邮件ID)(例如abc@xyz.com)时,我无法发送邮件

JSSEProvider类:

公共JSSEProvider(){

    super("HarmonyJSSE", 1.0, "Harmony JSSE Provider");

    AccessController

            .doPrivileged(new java.security.PrivilegedAction<Void>() {

                public Void run() {

                    put("SSLContext.TLS",

                            "org.apache.harmony.xnet.provider.jsse.SSLContextImpl");

                    put("Alg.Alias.SSLContext.TLSv1", "TLS");

                    put("KeyManagerFactory.X509",

                            "org.apache.harmony.xnet.provider.jsse.KeyManagerFactoryImpl");

                    put("TrustManagerFactory.X509",

                            "org.apache.harmony.xnet.provider.jsse.TrustManagerFactoryImpl");

                    return null;

                }

            });

}

private Multipart _multipart = new MimeMultipart();

静态{

    Security.addProvider(new com.example.idcapp.JSSEProvider());

}

GMailSender类:

public GMailSender(String user, String password) {

    this.user = user;

    this.password = password;



    Properties props = new Properties();

    props.setProperty("mail.transport.protocol", "smtp");

    props.setProperty("mail.host", mailhost);

    props.put("mail.smtp.auth", "true");

    props.put("mail.smtp.port", "465");

    props.put("mail.smtp.socketFactory.port", "465");

    props.put("mail.smtp.socketFactory.class",

            "javax.net.ssl.SSLSocketFactory");

    props.put("mail.smtp.socketFactory.fallback", "false");

    props.setProperty("mail.smtp.quitwait", "false");



    session = Session.getDefaultInstance(props, this);

}



protected PasswordAuthentication getPasswordAuthentication() {

    return new PasswordAuthentication(user, password);

}



public synchronized void sendMail(String subject, String body,

                                  String sender, String recipients) throws Exception {

    try {

        MimeMessage message = new MimeMessage(session);

        DataHandler handler = new DataHandler(new ByteArrayDataSource(

                body.getBytes(), "text/plain"));

        message.setSender(new InternetAddress(sender));

        message.setSubject(subject);

        message.setDataHandler(handler);

        BodyPart messageBodyPart = new MimeBodyPart();

        messageBodyPart.setText(body);

        _multipart.addBodyPart(messageBodyPart);



        // Put parts in message

        message.setContent(_multipart);

        if (recipients.indexOf(',') > 0)

            message.setRecipients(Message.RecipientType.TO,

                    InternetAddress.parse(recipients));

        else

            message.setRecipient(Message.RecipientType.TO,

                    new InternetAddress(recipients));

        Transport.send(message);

    } catch (Exception e) {



    }

}



public void addAttachment(String filename) throws Exception {

    BodyPart messageBodyPart = new MimeBodyPart();

    DataSource source = new FileDataSource(filename);

    messageBodyPart.setDataHandler(new DataHandler(source));

    messageBodyPart.setFileName("download image");



    _multipart.addBodyPart(messageBodyPart);

}



public class ByteArrayDataSource implements DataSource {

    private byte[] data;

    private String type;





    public ByteArrayDataSource(byte[] data, String type) {

        super();

        this.data = data;

        this.type = type;

    }



    public ByteArrayDataSource(byte[] data) {

        super();

        this.data = data;

    }





    public void setType(String type) {

        this.type = type;

    }



    public String getContentType() {

        if (type == null)

            return "application/octet-stream";

        else

            return type;

    }



    public InputStream getInputStream() throws IOException {

        return new ByteArrayInputStream(data);

    }



    public String getName() {

        return "ByteArrayDataSource";

    }



    public OutputStream getOutputStream() throws IOException {

        throw new IOException("Not Supported");

    }

}

MainActivity:

    send.setOnClickListener(new View.OnClickListener() {



        public void onClick(View v) {

            // TODO Auto-generated method stub

            new Thread(new Runnable() {

                public void run() {

                    try {

                        GMailSender sender = new GMailSender(

                                "xyz@gmail.com",

                                "Password");



                     //   sender.addAttachment(Environment.getExternalStorageDirectory().getPath()+"/image.jpg");

                        sender.sendMail("Test mail", "This mail has been sent from android app along with attachment",

                                "uvvishalupadhyay@gmail.com",

                                "vishal.upadhyay@xyz.com");









                    } catch (Exception e) {

                        Toast.makeText(getApplicationContext(),"Error",Toast.LENGTH_LONG).show();



                    }

                }

            }).start();

        }

    });



}

0 个答案:

没有答案