欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

android后台发送邮件,android发送邮件,public class

来源: javaer 分享于  点击 29267 次 点评:61

android后台发送邮件,android发送邮件,public class


public class SendEmail {    private static final String TAG = "SendEmail";    //要发送Email地址    private String mailTo = null;    //邮件发送来源地址    private String mailFrom = null;    //SMTP主机地址    private String smtpHost = null;    //是否启用调试    private boolean debug = false;    private String messageBasePath = null;    //Email主题    private String subject;    public void setMailTo(String mailTo) {        this.mailTo = mailTo;    }    public void setMailFrom(String mailFrom) {        this.mailFrom = mailFrom;    }    public void setSmtpHost(String smtpHost) {        this.smtpHost = smtpHost;    }    public void setDebug(boolean debug) {        this.debug = debug;    }    public void setMessageBasePath(String messageBasePath) {        this.messageBasePath = messageBasePath;    }    public void setSubject(String subject) {        this.subject = subject;    }    public void setMsgContent(String msgContent) {        this.msgContent = msgContent;    }    public void setAttachedFileList(Vector attachedFileList) {        this.attachedFileList = attachedFileList;    }    public void setEmailAccount(String emailAccount) {        this.emailAccount = emailAccount;    }    public void setEmailPwd(String emailPwd) {        this.emailPwd = emailPwd;    }    public void setMessageContentType(String messageContentType) {        this.messageContentType = messageContentType;    }    public void setEmailbccTo(String emailbccTo) {        this.emailbccTo = emailbccTo;    }    public void setEmailccTo(String emailccTo) {        this.emailccTo = emailccTo;    }    //Email内容    private String msgContent;    private Vector attachedFileList;    private String emailAccount = null;    private String emailPwd = null;    private String messageContentType = "text/html;charset=utf-8";    private String emailbccTo = null;    private String emailccTo = null;    /*    默认构造函数     */    public SendEmail() {        super();    }    private void writeEmail(Session session, Message message) throws MessagingException {        String fileName;        Multipart multipart = new MimeMultipart();        //设定发件人地址        if (mailFrom != null) {            message.setFrom(new InternetAddress(mailFrom));            Log.i(TAG, "发件人邮件地址:" + mailFrom);        } else {            Log.i(TAG, "没有指定发件人邮件地址");            return;        }        //设定收件人地址        if (mailTo != null) {            message.setRecipient(Message.RecipientType.TO, new InternetAddress(mailTo));            Log.i(TAG, "收件人邮件地址:" + mailTo);        } else {            Log.i(TAG, "没有指定收件人邮件地址");            return;        }        //设定抄送地址        if (emailccTo != null) {            message.setRecipient(Message.RecipientType.CC, new InternetAddress(emailccTo));            Log.i(TAG, "抄送邮件地址:" + emailccTo);        } else {            Log.i(TAG, "没有指定抄送邮件地址");            return;        }        //设定密送地址        if (emailbccTo != null) {            message.setRecipient(Message.RecipientType.BCC, new InternetAddress(emailbccTo));            Log.i(TAG, "密送邮件地址:" + emailbccTo);        } else {            Log.i(TAG, "没有指定密送邮件地址");            return;        }        //设置邮件主题        message.setSubject(subject);        Log.i(TAG, "邮件主题:" + subject);        //设置回复地址        message.setReplyTo(new InternetAddress[]{new InternetAddress(mailFrom)});        //创建并设置第一部分        MimeBodyPart bodyPart = new MimeBodyPart();        if (msgContent != null) {            Log.i(TAG, "邮件内容:" + msgContent);            bodyPart.setContent(msgContent, messageContentType);        } else {            bodyPart.setContent("", messageContentType);        }        multipart.addBodyPart(bodyPart);        //附件文件到邮件中        if (attachedFileList != null) {            for (Enumeration fileList = attachedFileList.elements(); fileList.hasMoreElements(); ) {                fileName = (String) fileList.nextElement();                MimeBodyPart mBodyPart = new MimeBodyPart();                FileDataSource fds = new FileDataSource(messageBasePath + fileName);                Log.i(TAG, "Email发送的附件为:" + messageBasePath + fileName);                mBodyPart.setDataHandler(new DataHandler(fds));                mBodyPart.setFileName(fileName);                multipart.addBodyPart(mBodyPart);            }        }        Log.i(TAG, "设置邮件部分");        message.setContent(multipart);        message.setSentDate(new Date());    }    /**     * 发送邮件方法     *     * @return true 表示发送成功,false表示不成功     */    public boolean sendEmail() {        int loopCount;        Properties properties = System.getProperties();        properties.setProperty("mail.smtp.host", smtpHost);        properties.setProperty("mail.smtp.auth", "true");        properties.put("mail.smtp.port", "25");        MailAuthenticator authenticator = new MailAuthenticator();        Session session = Session.getInstance(properties, authenticator);        session.setDebug(debug);        MimeMessage mimeMessage = new MimeMessage(session);//这里如果用Transport的话会出现错误        SMTPTransport transport = new SMTPTransport(session, new URLName("smtp", "smtp.qq.com", 25, null, MailAuthenticator.TENCENT_EMAIL_USER, MailAuthenticator.TENCENT_EMAIL_PWD));        try {            writeEmail(session, mimeMessage);            //transport = session.getTransport("smtp");            try {                Log.i(TAG, "开始连接服务器");                transport.connect(smtpHost, 25, MailAuthenticator.TENCENT_EMAIL_USER, MailAuthenticator.TENCENT_EMAIL_PWD);            } catch (AuthenticationFailedException e) {                e.printStackTrace();                Log.i(TAG, "连接服务器失败");                return false;            } catch (MessagingException e) {                e.printStackTrace();                Log.i(TAG, "发送邮件过程中出现错误");                return false;            }            Log.i(TAG, "开始发送邮件");            transport.sendMessage(mimeMessage, mimeMessage.getAllRecipients());            transport.close();            Log.i(TAG, "关闭连接");        } catch (MessagingException e) {            e.printStackTrace();            Log.i(TAG, "发送邮件失败");            return false;        } finally {            try {                if (transport != null && transport.isConnected()) {                    transport.close();                    Log.i(TAG, "在finally中关闭连接");                }            } catch (MessagingException e) {                e.printStackTrace();            }        }        Log.i(TAG, "邮件发送成功");        return true;    }}tips---其中的MyAuthenticator类继承自Authenticator,重写这个方法即可@Overrideprotected PasswordAuthentication getPasswordAuthentication() {    return new PasswordAuthentication(邮箱用户名,密码);}
相关栏目:

用户点评