0 0

收藏 javamail发送Gmail问题10

最近写的一个Gmail邮件发送程序,本地发送正常,一上线就发不出去,报错信息如下:
javax.mail.SendFailedException: Sending failed;
  nested exception is:
class javax.mail.AuthenticationFailedException
at javax.mail.Transport.send0(Transport.java:218)
at javax.mail.Transport.send(Transport.java:80)
at com.util.mail.SendGMail.sendMail(SendGMail.java:70)
环境为linux+tomcat,
源码如下:

public class SendGMail {
 /**
  * 设置一些使用属性
  */
 private static final String MAIL_CONTENT_TYPE = "text/html;charset=utf-8";
 
 /**
  * 设置Properties
  */
 private static final String MAIL_SMTP_HOST = "smtp.gmail.com"; // 这是gmail的smtp服务器域名
 private static final String MAIL_SMTP_PORT = "465";            // 注意:gmail的smtp服务器使用的是465端口
 private static final String MAIL_SMTP_AUTH = "true";
 private static final String MAIL_SMTP_SOCKETFACTORY_CLASS = "javax.net.ssl.SSLSocketFactory";
 private static final String MAIL_SMTP_SOCKETFACTORY_FALLBACK = "false";
 private static final String MAIL_SMTP_SOCKETFACTORY_PORT = "465";
 private static final String MAIL_SMTP_SSL = "true";

 public static void sendMail(String toEmail,String subject,String content) {
 Properties props = System.getProperties();
 props.setProperty("mail.smtp.host", MAIL_SMTP_HOST);
 props.setProperty("mail.smtp.socketFactory.class", MAIL_SMTP_SOCKETFACTORY_CLASS);
 props.setProperty("mail.smtp.socketFactory.fallback", MAIL_SMTP_SOCKETFACTORY_FALLBACK);
 props.setProperty("mail.smtp.port", MAIL_SMTP_PORT);
 props.setProperty("mail.smtp.socketFactory.port", MAIL_SMTP_SOCKETFACTORY_PORT);
 props.setProperty("mail.smtp.auth", MAIL_SMTP_AUTH);
 props.setProperty("mail.smtp.ssl", MAIL_SMTP_SSL);
 props.put("mail.smtp.debug", "true");
  
 Session session = Session.getDefaultInstance(props, new Authenticator() {
 protected javax.mail.PasswordAuthentication getPasswordAuthentication() {
 return new javax.mail.PasswordAuthentication(SysType.GMAIL_CONFIG[0], SysType.GMAIL_CONFIG[1]);
}
 });
  
 // create a new message
 Message message = new MimeMessage(session);
 try {
 message.setFrom(new InternetAddress(SysType.GMAIL_CONFIG[0]));
 message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(toEmail));
 message.setSubject(subject);
   
 /** 设置邮件内容 */
 Multipart multipart = new MimeMultipart();
 BodyPart bodyPart = new MimeBodyPart();
 bodyPart.setContent(content, MAIL_CONTENT_TYPE);
 multipart.addBodyPart(bodyPart);
   
 message.setContent(multipart);
 message.setSentDate(new java.util.Date());
 message.saveChanges();
 
 Transport.send(message);
} catch(MessagingException ex) {
ex.printStackTrace();
}
 }
 
public static void main(String[] args) {
StringBuffer sb = new StringBuffer();
sb.append("test");
String toEmail = "00000000000@qq.com";
        String subject = "test";
SendGMail.sendMail(toEmail,subject,sb.toString());
System.out.println("OK");
 }
}

不知道是哪里有问题。

2013年1月27日 16:25

2个答案 按时间排序 按投票排序

0 0

你看看你的服务器上有没有导入gmail的HTTPS证书,如果服务器是Linux的话,有很可能出现这样的问题。

2013年1月28日 11:35
0 0

看看是不是网络原因

2013年1月28日 09:50

相关推荐

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

    以上就是使用JavaMail API通过Gmail发送邮件的基本过程,无论是无附件还是有附件,主要区别在于是否创建和添加`MimeBodyPart`以及`MimeMultipart`。通过理解和应用这些概念,你可以灵活地构建满足需求的邮件系统。

    JavaMail收发Gmail邮件

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

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

    JavaMail是一种广泛使用的Java库,用于在应用程序中发送电子邮件。这个标题"JavaMail发送邮件(文本、html、附件)"涵盖了使用JavaMail API发送不同格式邮件的核心功能。下面将详细介绍如何利用JavaMail发送文本、...

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

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

    javamail发送邮件.zip

    JavaMail 是一个强大的开源库,用于在Java应用程序中发送和接收电子邮件。这个“javamail发送邮件.zip”压缩包显然包含了一个示例项目,演示如何使用JavaMail API发送包含正文文本、图片以及附件的邮件。以下是对这...

    用javaMail发送邮件

    JavaMail 是一个强大的开源库,用于在Java应用程序中发送和接收电子邮件。这个功能通常涉及到SMTP(简单邮件传输协议)和其他相关的互联网邮件协议。在JavaMail中,`mail.jar` 和 `activation.jar` 是两个关键的库...

    JavaMail发送邮件的例子

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

    javamail发送邮件实例

    SMTP服务器是邮件发送的载体,大多数邮件服务提供商如Gmail、Yahoo或Outlook都提供了SMTP服务器。在JavaMail中,我们需要创建`Properties`对象来配置这些信息,包括SMTP服务器地址、端口、用户名和密码。 ```java ...

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

    在Java编程中,发送电子邮件是一个常见的任务,通常通过JavaMail API来实现。JavaMail是一个开放源代码的API,它允许开发者在Java应用程序中处理邮件协议,如SMTP、POP3和IMAP。在这个例子中,我们将详细探讨如何...

    JavaMail发送给多人,添加多个附件

    javaMail

    javamail发送邮件的简单实例

    javamail发送邮件的简单实例

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

    标签“java发送邮件”意味着此示例主要关注Java语言中发送邮件的功能,而“javamail邮箱发送”则表明我们利用JavaMail库来实现这一功能。这个过程涉及到Java网络编程和邮件协议的理解,如SMTP(简单邮件传输协议)和...

    JAVAMAIL集合发送图片,附件,内容,HTML等得JAVAMAIL代码

    本资源是一个集合发送图片,附件,内容,HTML等得JAVAMAIL代码,并且可以同时发送多个附件多个图片,只需填充VO类,即可直接调用并发送邮件,例子已经写好,只要填充上必要值即可,经163,qq,sina测试没有问题,有...

    javamail发送、接收邮件

    在IT领域,JavaMail API是Java开发者用于处理电子邮件发送与接收的强大工具。通过解析给定文件的标题、描述、标签及部分内容,我们可以深入探讨javamail发送与接收邮件的详细教程,以及如何利用JavaMail API实现邮件...

    javaMail实现发送邮件的demo

    JavaMail 是一个开源的 Java 库,用于处理电子邮件的发送和接收。它提供了一组 API,使得开发者可以方便地在 Java 应用程序中集成邮件功能。本示例将介绍如何使用 JavaMail 实现发送邮件的功能。 首先,我们需要...

    javaMail发送邮件依赖的jar包源码整理

    2. **Provider**: JavaMail 使用服务提供者机制,允许不同的邮件系统(如 Gmail、Yahoo、Outlook)通过实现相应的接口来与 JavaMail API 连接。每个提供商都注册在 `META-INF/services` 文件中。 3. **Protocol ...

    利用JavaMail发送邮件示例

    JavaMail 是一个开源库,它允许Java开发者使用标准的SMTP(简单邮件传输协议)或ESMTP(扩展SMTP)协议发送邮件,同时也能通过IMAP(Internet消息访问协议)和POP3(邮局协议)接收邮件。这个示例将详细介绍如何在...

    javamail发送html邮件

    JavaMail API 是一个用于发送、接收电子邮件的标准接口集合,它支持多种协议(如 SMTP、IMAP 和 POP3),使得 Java 应用程序能够轻松地发送和接收电子邮件。 #### 二、发送 HTML 格式的邮件 在实际应用中,经常需要...

    javamail 发送邮件 实例

    JavaMail 是一个开源的 Java 库,用于处理电子邮件的发送和接收。这个库提供了一组API,使得开发者能够轻松地在Java应用程序中实现SMTP(简单邮件传输协议)和其他邮件协议的功能。下面,我们将深入探讨使用JavaMail...

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

    这个例子展示了如何使用JavaMail API通过QQ和Gmail邮箱实现邮件的发送,并且使用了SSL(Secure Socket Layer)来确保通信的安全性。SSL是网络安全传输的一种标准,它可以加密传输的数据,防止在互联网上被窃取或篡改...

Global site tag (gtag.js) - Google Analytics