对于使用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();
}
}
}
分享到:
相关推荐
本教程将详细讲解如何使用JavaMail API在Gmail上发送邮件,包括不带附件和带有一个附件的情况。 首先,JavaMail是一个开源的Java库,它提供了用于处理邮件的标准API。在使用JavaMail发送邮件前,你需要在项目中引入...
本示例将重点介绍如何使用JavaMail库来实现163邮箱向腾讯邮件发送邮件的流程。 首先,确保你的项目中已经包含了JavaMail所需的依赖。通常,这可以通过在Maven或Gradle的构建文件中添加对应的依赖完成。例如,如果你...
JavaMail 是一个 Java API,用于在 Java 应用程序中发送和接收电子邮件。它提供了一个抽象层,允许开发者使用不同的电子邮件协议,例如 SMTP、POP3 和 IMAP。 在本文中,我们将讨论如何使用 JavaMail 库来代发邮件...
### JavaMail发送邮件时遇到的问题及解决方法 在使用JavaMail进行邮件发送的过程中,可能会遇到以下几种常见问题:发送成功但收件方未收到邮件、邮件收到后无主题或无收件人信息以及邮件内容出现乱码等情况。本文将...
JavaMail 是一个强大的 Java 库,它允许开发者在应用程序中实现电子邮件的发送和接收功能。这个库支持多种邮件协议,如 SMTP(简单邮件传输协议)用于发送邮件,POP3(邮局协议)和 IMAP(因特网消息访问协议)用于...
### JavaMail收发Gmail邮件知识点详解 #### 一、JavaMail简介 JavaMail API是Java平台中的一个标准扩展库,用于发送、接收以及管理电子邮件。它提供了丰富的接口来实现邮件的各种操作,如构建复杂的MIME消息、处理...
首先,James(Apache James)是一个开源的邮件服务器,它支持SMTP、POP3和IMAP协议,可以作为企业级的邮件解决方案。James的核心特性之一是其可扩展性,可以通过插件连接到各种数据库,以便存储和管理邮件数据。 ...
JavaMail 是一个开源库,用于在Java应用程序中发送和接收电子邮件。这个库支持多种邮件协议,如SMTP(简单邮件传输协议)、POP3(邮局协议)和IMAP(因特网消息访问协议)。在JavaMail中,创建和发送邮件涉及到对...
JavaMail 是一个强大的开源库,用于在Java应用程序中发送和接收电子邮件。这个例子展示了如何使用JavaMail API通过QQ和Gmail邮箱实现邮件的发送,并且使用了SSL(Secure Socket Layer)来确保通信的安全性。SSL是...
总之,JavaMail和Apache Commons Email是强大的邮件处理工具,它们极大地简化了在Java应用中发送和接收邮件的过程。正确理解和使用这两个库,可以帮助开发者高效地实现邮件功能,提高应用的用户体验。
总的来说,这个JavaMail邮箱系统是一个集成了邮件处理、用户设置和智能过滤的综合平台,通过利用JavaMail库和朴素贝叶斯算法,提供了一种高效且用户友好的邮件管理方案。开发者在设计时考虑到了用户体验和安全,使其...
在使用QQ邮箱发送邮件之前,你需要在QQ邮箱设置中启用“允许第三方应用登录”功能,并获取授权码,这将作为SMTP服务的密码。QQ邮箱的SMTP服务器地址是smtp.qq.com,端口通常是465(SSL加密)或587(TLS加密)。 ...
JavaMail 是一个强大的开源库,专门用于在Java应用程序中发送和接收电子邮件。它提供了丰富的API,使得开发者可以方便地处理SMTP、POP3和IMAP等邮件协议。在JavaMail中,我们可以实现各种复杂的邮件功能,如添加附件...
JavaMail是一种在Java环境中发送和接收电子邮件的标准API,它提供了丰富的功能来处理复杂的邮件操作。在Struts2框架中集成JavaMail服务,可以方便地在Web应用中实现邮件的发送功能。下面我们将深入探讨JavaMail的...
- JavaMail API提供了一系列接口和类,允许开发者通过SMTP(Simple Mail Transfer Protocol)协议发送邮件。 - 主要涉及的接口和类包括:`Session`(邮件会话)、`Message`(邮件对象)、`Transport`(传输服务)...
JavaMail 是一个开源的 Java 库,用于处理电子邮件的发送和接收。它提供了与各种邮件服务器(如 SMTP、POP3 和 IMAP)交互的接口,使得开发者能够在 Java 应用程序中实现邮件功能。在本项目中,我们将重点讨论如何...
JavaMail是一种在Java应用程序中发送和接收电子邮件的标准API,它为开发者提供了强大的功能,使得处理邮件变得简单而高效。在JavaMail中,我们主要利用 javax.mail 和 javax.mail.internet 这两个包中的类来实现邮件...
JavaMail是一个开放源代码的API,它允许开发者在Java应用程序中处理邮件协议,如SMTP、POP3和IMAP。在这个例子中,我们将详细探讨如何使用JavaMail发送邮件,包括SMTP认证、添加附件以及发送HTML内容的邮件。 首先...
用javaMail实现公司内网邮箱邮件发送,包括邮件附件,邮件发送人和抄送人
JavaMail API是一个开源的Java库,允许开发者在Java应用程序中发送和接收电子邮件。它遵循SMTP(Simple Mail Transfer Protocol)和IMAP(Internet Message Access Protocol)等标准,提供了邮件服务器交互的接口。...