android后台发送邮件
发布时间:2020-12-14 23:26:33 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 public class SendEmail { private static final String TAG = "SendEmail"; //要发送Email地址 private String mailTo = null; //邮件发送来源地址 p
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考 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,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,重写这个方法即可 @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(邮箱用户名,密码); } 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |