首先下载jmail所需的三个库:activation.jar additionnal.jar mail.jar
准备发送邮件用的邮箱的用户名、密码、SMTP服务器地址。
注意发送邮件需要新开线程。同时放开网络访问的权限。 <uses-permission android:name="android.permission.INTERNET" />
发送邮箱的示例代码如下:
import java.util.Properties;
import javax.mail.Address;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import com.example.webtest.R;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class EmailTest extends Activity {
private Button sendmailbutton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_email_test);
sendmailbutton = (Button) findViewById(R.id.sendmailbutton);
// 创建邮件的连接属性
Properties emailProperties = new Properties();
emailProperties.put("mail.smtp.host", "smtp.sina.com.cn");
emailProperties.put("mail.smtp.auth", "true");
// 创建认证实例
PopupAuthen emailAuthen = new PopupAuthen();
// 创建会话
final Session emailSession = Session.getInstance(emailProperties,emailAuthen);
sendmailbutton.setOnClickListener(new OnClickListener() {
// TODO Auto-generated method stub
@Override
public void onClick(View v) {
new Thread(new Runnable() {
@SuppressWarnings("static-access")
@Override
public void run() {
// TODO Auto-generated method stub
try {
//定义邮件接收和发送地址
Address addressFrom = new InternetAddress( "windvallywww@sina.com", "windvallywww");
Address addressTo = new InternetAddress( "wangw@zoomactech.com", "wangw");
Address addressCopy = new InternetAddress("16341625@qq.com", "16341625");
// 创建邮件体
Message emailmessage = new MimeMessage(emailSession);
emailmessage.setContent("hello", "text/plain");
emailmessage.setSubject("Title");
emailmessage.setFrom(addressFrom);
emailmessage.addRecipient(Message.RecipientType.TO, addressTo);
emailmessage.addRecipient(Message.RecipientType.CC,addressCopy);
emailmessage.saveChanges();
Transport emailTransport = emailSession.getTransport("smtp");
//发送邮件
emailTransport.send(emailmessage);
emailTransport.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}).start();
}
});
}
class PopupAuthen extends Authenticator {
public PasswordAuthentication getPasswordAuthentication() {
String username =" windvallywww@sina.com"; //邮箱登陆名
String pwd = "XXXXXXXXX";//邮箱密码
return new PasswordAuthentication(username, pwd);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.email_test, menu);
return true;
}
}