一、注册Google Apps账户
1.访问https://www.google.com/a/cpanel/premier/new3?hl=zh-CN进行注册Google Apps
并输入单位的域名,例如:immomo.com
2.在输入域名之后,开始填写下方的详细信息资料:用户名、密码、确认密码。
3.填写贵单位信息,Google Apps并不支持中国的单位,所以在填写单位信息时,要注意:
国家/地区要选择美国,并且选择美国的省份,然后根据省份填写对应的美国邮政编码、电话号码。
备用电子邮件地址,必须填写其他非Google企业邮箱的电子邮件。例如:163,126,sina,QQ等等。
4.在填写结束之后,点击最下方的:“我接受!创建我的账户》”按钮,提交注册信息。
5.在注册成功之后,需要根据Google的要求,进行域名所有权验证:会给你一个HTML页面,由你上传到域名服务器,然后点击验证按钮,在Google确认验证成功之后,才可以进行所有的操作。
二、设置Google Apps账户
由于我的域名是immomo.com那么我的管理端后台地址默认为:https://www.google.com/a/immomo.com
打开输入账号密码之后登陆,在Google Apps的上方的导航栏中。包含:信息中心 单位和用户 群组 域名设置 高级工具 安装 支持 设置 这样几个项目。
点击“单位和用户”,可以进行用户的添加,删除,修改等操作。
点击“域名设置”,可以进行主要管理员账户的设置:“单位名称”,“管理员账户”等等。
由于我的目的是申请一个Google Apps企业邮箱服务器,并使用它进行公司的产品系统邮件的发送,那么这些其他设置就不多说了,可以自己点着看看。可以设置名称,签名档之类的。
三、使用JAVA MAIL通过申请的Google Apps服务器进行邮件的发送
在这里,是使用JAVA MAIL根据smtp协议进行邮件的发送。
上代码:
MailInfo 类,是功能类,方法、参数的定义。
package mailsend; /** * * TODO 发送邮件! * */ import java.util.Properties; import javax.mail.Address; import javax.mail.BodyPart; import javax.mail.Message; import javax.mail.Multipart; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart; public class MailInfo { public MimeMessage mimeMsg; private Session session; private Properties props; private String username = ""; private String password = ""; private Multipart mp; public MailInfo(String stmp) { setSmtpHost(stmp); createMimeMessage(); } /** * * @param hostName */ public void setSmtpHost(String hostName) { //System.out.println("------mail.stmp.host= " + hostName); if (props == null) { props = System.getProperties(); } props.put("mail.smtp.host", hostName); props.put("mail.smtp.starttls.enable", "true"); } public boolean createMimeMessage() { try { //System.out.println("------Session begin"); session = Session.getInstance(props, null); } catch (Exception e) { System.out.println("Session.getInstance failed!" + e); return false; } //System.out.println("------MimeMessage begin"); try { mimeMsg = new MimeMessage(session); mp = new MimeMultipart(); return true; } catch (Exception e) { System.out.println("MimeMessage fiald! " + e.toString()); return false; } } /** * * @param need */ public void setNeedAuth(boolean need) { //System.out.println("------mail.smtp.auth=" + need); if (props == null) { props = System.getProperties(); } if (need) { props.put("mail.smtp.auth", "true"); } else { props.put("mail.smtp.auth", "false"); } } /** * * @param name * @param pass */ public void setNamePass(String name, String pass) { username = name; password = pass; } /** * * @param mailSubject * @return boolean */ public boolean setSubject(String mailSubject) { //System.out.println("------Set title"); try { if (!mailSubject.equals("") && mailSubject != null) { mimeMsg.setSubject(mailSubject); } return true; } catch (Exception e) { System.out.println("======Set title failed!"); return false; } } /** * * @param from * @return */ public boolean setFrom(String from) { //System.out.println("------Set from"); try { mimeMsg.setFrom(new InternetAddress(from)); return true; } catch (Exception e) { return false; } } /** * * @param to * @return */ public boolean setTo(String to) { //System.out.println("------Set to"); if (to == null || to.equals("")) { return false; } try { mimeMsg.setRecipients(Message.RecipientType.TO, InternetAddress .parse(to)); return true; } catch (Exception e) { return false; } } public boolean setCopyTo(String copyto) { if (copyto.equals("") || copyto == null) { return false; } try { String copy[]; copy = copyto.split(";"); for (int i = 0; i < copy.length; i++) { mimeMsg.setRecipients(Message.RecipientType.TO, (Address[]) InternetAddress.parse(copy[i])); } return true; } catch (Exception e) { return false; } } public boolean setOut() { try { mimeMsg.setContent(mp); mimeMsg.saveChanges(); //System.out.println("------Sending mail"); Session mailSession = Session.getInstance(props, null); Transport tp = mailSession.getTransport("smtp"); tp.connect((String) props.getProperty("mail.stmp.host"), username,password); tp.sendMessage(mimeMsg, mimeMsg.getRecipients(Message.RecipientType.TO)); //System.out.println("======Success"); tp.close(); return true; } catch (Exception e) { e.printStackTrace(); return false; } } /** * Set content */ public boolean setBody(String mailBody) { try { BodyPart bp = new MimeBodyPart(); bp.setContent("<meta http-equiv=Context-Type context=text/html;charset=gb2312>" + mailBody, "text/html;charset=GB2312"); mp.addBodyPart(bp); return true; } catch (Exception e) { System.out.println("======Set context Failed! " + e); return false; } } }
SendMail类,是操作类,赋值并操作邮件发送功能。
package mailsend; /** * 发送邮件的MAIN方法FOR TEST */ public class SendMail { private static final String USERNAME = "[email protected]";//邮件发送人账号 private static final String PASSWD = "bugaosuni";//邮件发送人密码 private static final String RECEIVER = "[email protected]";//收件人账号 public static void main(String[] args) { MailInfo sm = new MailInfo("smtp.gmail.com");//GMAIL服务器STMP地址 sm.setNamePass(USERNAME, PASSWD); sm.setFrom(USERNAME); sm.setTo(RECEIVER); sm.setSubject("我的测试126邮件");//TITLE sm.setBody("126没有问题!");//CONTENT sm.setNeedAuth(true); boolean b = sm.setOut(); if (b) { System.out.println("Mail send succeed!"); } else { System.out.println("Mail send failed!"); } } }
另附带该项目和JAR包。