android 随手记 android使用javamail发送邮件

今天学习了一下JavaMail,javamail发送邮件确实是一个比较麻烦的问题不用第三方邮件程序。为了以后使用方便,自己写了段代码微笑

Javamail-Android配置步骤:

  1. 下载Android版本JavaMail包,additional.jar、mail.jar和activation.jar,下载地址JavaMail-Android

  2. 在项目与src同一目录级别下,新建文件夹lib,将下载的3个jar包放入该文件夹

  3. 右键->Properties->Java Build Path->Libraries,选择Add External JARs,找到项目下lib目录的3个jar包


我的代码有三个类: 
第一个类:MailSenderInfo.java

01package com.util.mail;
02/**
03* 发送邮件需要使用的基本信息
04*/
05import java.util.Properties;
06public class MailSenderInfo {
07    // 发送邮件的服务器的IP和端口
08    private String mailServerHost;
09    private String mailServerPort = "25";
10    // 邮件发送者的地址
11    private String fromAddress;
12    // 邮件接收者的地址
13    private String toAddress;
14    // 登陆邮件发送服务器的用户名和密码
15    private String userName;
16    private String password;
17    // 是否需要身份验证
18    private boolean validate = false;
19    // 邮件主题
20    private String subject;
21    // 邮件的文本内容
22    private String content;
23    // 邮件附件的文件名
24    private String[] attachFileNames;  
25    /**
26      * 获得邮件会话属性
27      */
28    public Properties getProperties(){
29      Properties p = new Properties();
30      p.put("mail.smtp.host", this.mailServerHost);
31      p.put("mail.smtp.port", this.mailServerPort);
32      p.put("mail.smtp.auth", validate ? "true" : "false");
33      return p;
34    }
35    public String getMailServerHost() {
36      return mailServerHost;
37    }
38    public void setMailServerHost(String mailServerHost) {
39      this.mailServerHost = mailServerHost;
40    }
41    public String getMailServerPort() {
42      return mailServerPort;
43    }
44    public void setMailServerPort(String mailServerPort) {
45      this.mailServerPort = mailServerPort;
46    }
47    public boolean isValidate() {
48      return validate;
49    }
50    public void setValidate(boolean validate) {
51      this.validate = validate;
52    }
53    public String[] getAttachFileNames() {
54      return attachFileNames;
55    }
56    public void setAttachFileNames(String[] fileNames) {
57      this.attachFileNames = fileNames;
58    }
59    public String getFromAddress() {
60      return fromAddress;
61    }
62    public void setFromAddress(String fromAddress) {
63      this.fromAddress = fromAddress;
64    }
65    public String getPassword() {
66      return password;
67    }
68    public void setPassword(String password) {
69      this.password = password;
70    }
71    public String getToAddress() {
72      return toAddress;
73    }
74    public void setToAddress(String toAddress) {
75      this.toAddress = toAddress;
76    }
77    public String getUserName() {
78      return userName;
79    }
80    public void setUserName(String userName) {
81      this.userName = userName;
82    }
83    public String getSubject() {
84      return subject;
85    }
86    public void setSubject(String subject) {
87      this.subject = subject;
88    }
89    public String getContent() {
90      return content;
91    }
92    public void setContent(String textContent) {
93      this.content = textContent;
94    }
95}

第二个类:MultiMailsender.java

第三个类:MyAuthenticator.java

下面给出使用上面三个类的代码:

01public static void main(String[] args){
02         //这个类主要是设置邮件
03      MultiMailSenderInfo mailInfo = new MultiMailSenderInfo();
04      mailInfo.setMailServerHost("smtp.163.com");
05      mailInfo.setMailServerPort("25");
06      mailInfo.setValidate(true);
07      mailInfo.setUserName("xxx@163.com");
08      mailInfo.setPassword("**********");//您的邮箱密码
09      mailInfo.setFromAddress("xxx@163.com");
10      mailInfo.setToAddress("xxx@163.com");
11      mailInfo.setSubject("设置邮箱标题");
12      mailInfo.setContent("设置邮箱内容");
13      String[] receivers = new String[]{"***@163.com", "***@tom.com"};
14      String[] ccs = receivers; mailInfo.setReceivers(receivers);
15      mailInfo.setCcs(ccs);
16      //这个类主要来发送邮件
17      MultiMailsender sms = new MultiMailsender();
18      sms.sendTextMail(mailInfo);//发送文体格式
19      MultiMailsender.sendHtmlMail(mailInfo);//发送html格式
20      MultiMailsender.sendMailtoMultiCC(mailInfo);//发送抄送

最后,给出朋友们几个注意的地方: 
1、使用此代码你可以完成你的javamail的邮件发送功能、发多个邮箱。三个类缺一不可。 
2、这三个类我打包是用的com.util.mail包,如果不喜欢,你可以自己改,但三个类文件必须在同一个包中 
3、不要使用你刚刚注册过的邮箱在程序中发邮件,如果你的163邮箱是刚注册不久,那你就不要使用“smtp.163.com”。因为你发不出去。刚注册的邮箱是不会给你这种权限的,也就是你不能通过验证。要使用你经常用的邮箱,而且时间比较长的。 
4、另一个问题就是mailInfo.setMailServerHost("smtp.163.com");mailInfo.setFromAddress("xxx@163.com");这两句话。即如果你使用163smtp服务器,那么发送邮件地址就必须用163的邮箱,如果不的话,是不会发送成功的。 
5、关于javamail验证错误的问题,网上的解释有很多,但我看见的只有一个。就是我的第三个类。你只要复制全了代码,我想是不会有问题的。

6、 然后在Android项目中添加网络访问权限

<uses-permission android:name="android.permission.INTERNET"></uses-permission>


原文链接: http://www.cnblogs.com/peakzheng/archive/2012/02/04/2338671.html
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值