关于使用Gmail和Hotmail发送邮件的问题小结
Gmail 530错误处理:
Gmail使用的端口为465或587端口.
示例代码:
if(this.smtp.indexOf("ail")>=0)
{
properties.setProperty("mail.smtp.socketFactory.class", "javax.ssl.SSLSocketFactory");
//properties.setProperty("mail.smtp.socketFactory.fallback", "false"); //这句可以不加
properties.setProperty("mail.smtp.port", "465");
properties.setProperty("mail.smtp.socketFactory.port", "465");
}
Hotmail的设置问题:
1. Hotmail的smtp服务器是smtp.live.
2. Hotmail邮件的账号必须有”@hotmail”。如果输入参数没有应有相应处理。
1、2问题的示例代码:
if (ains("hotmail")) {
smtpString = "smtp.live";
if (!ains("@hotmail")) {
userNameString = fromAddress;//将用户账号定义为hotmail的地址
}
}
3.不要指定“mail.smtp.socketFactory.class”,因为TLS使用的是普通的Socket。然后指定属性“mail.able”为“true”。
示例代码gmail账号注册:
if (ains("hotmail") // hotmail设置
|| ains("live")) {
properties.setProperty("mail.able", "true");
if (ainsValue("mail.smtp.socketFactory.class")) {//去除prperties中可能存在的mail.smtp.socketFactory键值
ve("mail.smtp.socketFactory.class");
ve("mail.smtp.socketFactory.port");
}
}
附 使用Spring的email模块发送简单文本邮件代码:
/**
* 发简单文本邮件
*
* @param fromAddress
* 发件地址
* @param toAddress
* 收件地址
* @param userName
* 用户名
* @param password
* 密码
* @param mailText
* 内容
* @param mailTitle
* 标题
*/
public static void mailSend(String fromAddress, String toAddress,
String userName, String password, String mailText, String mailTitle) {
JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl();
// 邮件服务器地址
String smtpString = "smtp."
+ fromAddress.substring(fromAddress.indexOf("@") + 1);
// 用户账号
String userNameString = userName;
// 对hotmail邮件服务器及用户账号进行处理
if (ains("hotmail")) {
smtpString = "smtp.live";
if (!ains("@hotmail")) {
userNameString = fromAddress;
}
}
// 设定邮件服务器
javaMailSender.setHost(smtpString);
// 实例化简单邮件信息类
SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
// 设定收件人、寄件人等常用属性
simpleMailMessage.setTo(toAddress);
simpleMailMessage.setFrom(fromAddress);
simpleMailMessage.setText(mailText);
simpleMailMessage.setSubject(mailTitle);
// 账号密码
javaMailSender.setUsername(userNameString);
javaMailSender.setPassword(password);
// 属性配置
Properties properties = new Properties();
properties.put("mail.smtp.auth", "true");
// 如果是用gmail邮件发送
if (smtpString.startsWith("ail")) {
properties.setProperty("mail.smtp.socketFactory.class",
"javax.ssl.SSLSocketFactory");
// properties.setProperty("mail.smtp.socketFactory.fallback",
// "false");
properties.setProperty("mail.smtp.port", "465");
properties.setProperty("mail.smtp.socketFactory.port", "465");
} else if (ains("hotmail") // hotmail设置
|| ains("live")) {
properties.setProperty("mail.able", "true");
if (ainsValue("mail.smtp.socketFactory.class")) {
ve("mail.smtp.socketFactory.class");
ve("mail.smtp.socketFactory.port");
}
}
javaMailSender.setJavaMailProperties(properties);
// 发送邮件
javaMailSender.send(simpleMailMessage);
}
Cyrus.chan
2012年7月21日星期六
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论