`
jespring
  • 浏览: 24655 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类
最新评论

javamail和apache email发送google apps企业套件非gmail域名的邮箱作为smtp发email邮件

阅读更多
对于使用google apps 企业免费套件注册的非gmail域名的gmail邮箱(如:tom@aabbcc.com)作为smtp发送电子邮件,javamail不能完成,始终报
javax.mail.AuthenticationFailedException: 535-5.7.1 Username and Password not accepted. Learn more at                  
535 5.7.1 http://mail.google.com/support/bin/answer.py?answer=14257 t1sm6758913rvl.9

at com.sun.mail.smtp.SMTPTransport$Authenticator.authenticate(SMTPTransport.java:648)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:583)
at javax.mail.Service.connect(Service.java:291)
at javax.mail.Service.connect(Service.java:172)
at com.maweis.util.MailUtil.sendEMail(MailUtil.java:84)
at com.maweis.util.MailUtil.main(MailUtil.java:25)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:110)
异常。

但是使用apache email 发送则不会报异常。

package com.xxxx.util;

import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.SimpleEmail;

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.io.UnsupportedEncodingException;
import java.util.Properties;

/**
* Created by IntelliJ IDEA.
* User: Administrator
* Date: 2010-6-23
* Time: 9:34:14
* java发email
*/
public class MailUtil {
    public static void main(String[] args) {
    //javamail 发邮件
        MailUtil.sendEMail("xxxx@qq.com","您的密码","您的密码为:123456");

        //apache email 发邮件
        MailUtil.send();

    }

    /**
     * <p>发送电子邮件</p>
     *
     * @param to      接收者的email地址
     * @param subject eamil标题
     * @param body    email内容
     * @return
     */
    public static boolean sendEMail(String to, String subject, String body) {
        //aabbcc
        String smtphost = "smtp.gmail.com"; // 发送邮件服务器
        String user = "tom"; // 邮件服务器登录用户名
        String password = "xxxxxx"; // 邮件服务器登录密码
        String from = "tom@aabbcc.com"; // 发送人邮件地址


// 以下为发送程序,用户无需改动
        try {
            System.out.println("eamil:" + to);           
            Properties props = new Properties();
            props.put("mail.smtp.host", smtphost);
            props.put("mail.smtp.auth", "true");
            if (smtphost.indexOf("smtp.gmail.com") >= 0) {
                props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
                props.setProperty("mail.smtp.socketFactory.fallback", "false");
                props.setProperty("mail.smtp.port", "465");
                props.setProperty("mail.smtp.socketFactory.port", "465");
            }
            javax.mail.Session ssn = javax.mail.Session.getInstance(props, null);
            MimeMessage message = new MimeMessage(ssn);
            InternetAddress fromAddress = new InternetAddress(from);
            message.setFrom(fromAddress);
            InternetAddress toAddress = new InternetAddress(to);
            message.addRecipient(Message.RecipientType.TO, toAddress);
            message.setSubject(subject);
            message.setText(body);
            Transport transport = ssn.getTransport("smtp");
            transport.connect(smtphost, user, password);
            transport.sendMessage(message, message.getRecipients(Message.RecipientType.TO));
            transport.close();
            return true;
        } catch (Exception m) {
            m.printStackTrace();
        }
        return false;
    }
   
//apache email
    public static void send() {
        SimpleEmail email = new SimpleEmail();

        try {
//            email.setTLS(true); //是否TLS校验,,某些邮箱需要TLS安全校验,同理有SSL校验
            email.setSSL(true);
            email.setHostName("smtp.gmail.com");
            email.setAuthentication("tom@aabbcc.com", "xxxxxx");   //用户名和密码
            email.setSslSmtpPort("465");
            email.setFrom("tom@aabbcc.com", "xxxxxx");
            email.setCharset("gbk");
            email.addTo("xxxxxx@qq.com"); //接收方
//                email.addCc("yyyyyy@qq.com"); //抄送方
//                email.addBcc("zzzzzz@163.com"); //秘密抄送方
            email.setSubject("Java Mail Test");         //标题
            email.setMsg("Just a simple send test .");   //内容
            email.send();
           
        } catch (EmailException e) {
            e.printStackTrace();
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }
}

分享到:
评论
1 楼 zhudeming 2010-06-25  
刚看见你的留言,来看看,我还没用到过google apps企业套件,又学习了,另外很还念IntelliJ IDEA啊,不做Java后就很少用到了

相关推荐

    Gmail邮件通过JavaMail发送(不带附件与带一个附件)

    本教程将详细讲解如何使用JavaMail API在Gmail上发送邮件,包括不带附件和带有一个附件的情况。 首先,JavaMail是一个开源的Java库,它提供了用于处理邮件的标准API。在使用JavaMail发送邮件前,你需要在项目中引入...

    javamail实现邮箱与邮箱发送邮件

    本示例将重点介绍如何使用JavaMail库来实现163邮箱向腾讯邮件发送邮件的流程。 首先,确保你的项目中已经包含了JavaMail所需的依赖。通常,这可以通过在Maven或Gradle的构建文件中添加对应的依赖完成。例如,如果你...

    使用JAVAMail代发邮件

    JavaMail 是一个 Java API,用于在 Java 应用程序中发送和接收电子邮件。它提供了一个抽象层,允许开发者使用不同的电子邮件协议,例如 SMTP、POP3 和 IMAP。 在本文中,我们将讨论如何使用 JavaMail 库来代发邮件...

    javaMail发送邮件 发送成功 收不到邮件 或收到邮件无主题无收件人乱码

    ### JavaMail发送邮件时遇到的问题及解决方法 在使用JavaMail进行邮件发送的过程中,可能会遇到以下几种常见问题:发送成功但收件方未收到邮件、邮件收到后无主题或无收件人信息以及邮件内容出现乱码等情况。本文将...

    使用javaMail发邮件及收取邮箱未读邮件并标记为已读

    JavaMail 是一个强大的 Java 库,它允许开发者在应用程序中实现电子邮件的发送和接收功能。这个库支持多种邮件协议,如 SMTP(简单邮件传输协议)用于发送邮件,POP3(邮局协议)和 IMAP(因特网消息访问协议)用于...

    JavaMail收发Gmail邮件

    ### JavaMail收发Gmail邮件知识点详解 #### 一、JavaMail简介 JavaMail API是Java平台中的一个标准扩展库,用于发送、接收以及管理电子邮件。它提供了丰富的接口来实现邮件的各种操作,如构建复杂的MIME消息、处理...

    james和javamail实现邮件收发(带发送附件)

    首先,James(Apache James)是一个开源的邮件服务器,它支持SMTP、POP3和IMAP协议,可以作为企业级的邮件解决方案。James的核心特性之一是其可扩展性,可以通过插件连接到各种数据库,以便存储和管理邮件数据。 ...

    使用JavaMail创建邮件和发送邮件

    JavaMail 是一个开源库,用于在Java应用程序中发送和接收电子邮件。这个库支持多种邮件协议,如SMTP(简单邮件传输协议)、POP3(邮局协议)和IMAP(因特网消息访问协议)。在JavaMail中,创建和发送邮件涉及到对...

    javamail 发送邮件的例子(通过了qq 和gmail的邮箱)有SSL 安全的方式

    JavaMail 是一个强大的开源库,用于在Java应用程序中发送和接收电子邮件。这个例子展示了如何使用JavaMail API通过QQ和Gmail邮箱实现邮件的发送,并且使用了SSL(Secure Socket Layer)来确保通信的安全性。SSL是...

    javamail&commons-email

    总之,JavaMail和Apache Commons Email是强大的邮件处理工具,它们极大地简化了在Java应用中发送和接收邮件的过程。正确理解和使用这两个库,可以帮助开发者高效地实现邮件功能,提高应用的用户体验。

    JavaMail 具备垃圾邮件过滤功能的邮箱

    总的来说,这个JavaMail邮箱系统是一个集成了邮件处理、用户设置和智能过滤的综合平台,通过利用JavaMail库和朴素贝叶斯算法,提供了一种高效且用户友好的邮件管理方案。开发者在设计时考虑到了用户体验和安全,使其...

    javaMail源代码,可以使用QQ邮箱等发送邮件

    在使用QQ邮箱发送邮件之前,你需要在QQ邮箱设置中启用“允许第三方应用登录”功能,并获取授权码,这将作为SMTP服务的密码。QQ邮箱的SMTP服务器地址是smtp.qq.com,端口通常是465(SSL加密)或587(TLS加密)。 ...

    javaMail 发邮件

    JavaMail 是一个强大的开源库,专门用于在Java应用程序中发送和接收电子邮件。它提供了丰富的API,使得开发者可以方便地处理SMTP、POP3和IMAP等邮件协议。在JavaMail中,我们可以实现各种复杂的邮件功能,如添加附件...

    JavaMail发送邮件的例子

    JavaMail是一种在Java环境中发送和接收电子邮件的标准API,它提供了丰富的功能来处理复杂的邮件操作。在Struts2框架中集成JavaMail服务,可以方便地在Web应用中实现邮件的发送功能。下面我们将深入探讨JavaMail的...

    JavaMail发送邮件(文本、html、附件)

    - JavaMail API提供了一系列接口和类,允许开发者通过SMTP(Simple Mail Transfer Protocol)协议发送邮件。 - 主要涉及的接口和类包括:`Session`(邮件会话)、`Message`(邮件对象)、`Transport`(传输服务)...

    Javamail实现邮件的发送

    JavaMail 是一个开源的 Java 库,用于处理电子邮件的发送和接收。它提供了与各种邮件服务器(如 SMTP、POP3 和 IMAP)交互的接口,使得开发者能够在 Java 应用程序中实现邮件功能。在本项目中,我们将重点讨论如何...

    JavaMail邮件发送源码 非常简单

    JavaMail是一种在Java应用程序中发送和接收电子邮件的标准API,它为开发者提供了强大的功能,使得处理邮件变得简单而高效。在JavaMail中,我们主要利用 javax.mail 和 javax.mail.internet 这两个包中的类来实现邮件...

    用Java类实现JavaMail发送邮件的例子

    JavaMail是一个开放源代码的API,它允许开发者在Java应用程序中处理邮件协议,如SMTP、POP3和IMAP。在这个例子中,我们将详细探讨如何使用JavaMail发送邮件,包括SMTP认证、添加附件以及发送HTML内容的邮件。 首先...

    javamail 实现公司内网邮件发送

    用javaMail实现公司内网邮箱邮件发送,包括邮件附件,邮件发送人和抄送人

    javamail邮件发送工具类

    JavaMail API是一个开源的Java库,允许开发者在Java应用程序中发送和接收电子邮件。它遵循SMTP(Simple Mail Transfer Protocol)和IMAP(Internet Message Access Protocol)等标准,提供了邮件服务器交互的接口。...

Global site tag (gtag.js) - Google Analytics