关于使用Gmail和Hotmail发送邮件的问题
关于使用GmailHotmail发送邮件的问题小结
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. Hotmailsmtp服务器是smtp.live.
2. Hotmail邮件的账号必须有”@hotmail”。如果输入参数没有应有相应处理。
12问题的示例代码:
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");
            }
        }
使用Springemail模块发送简单文本邮件代码:
/**
    * 发简单文本邮件
    *
    * @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
                                                        2012721日星期六

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。