首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用mail-service.xml文件从jboss发送电子邮件

使用mail-service.xml文件从jboss发送电子邮件
EN

Stack Overflow用户
提问于 2012-06-26 11:23:22
回答 3查看 6K关注 0票数 1

在从mail-service.xml文件获取会话时,我试图从jboss发送邮件。

代码语言:javascript
复制
javax.naming.Context ictx = new javax.naming.InitialContext();
       Session mailSession = (Session) ictx.lookup("java:/Mail"); 

这是我的mail-service.xml文件

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<!--DOCTYPE server-->
<!-- $Id: mail-service.xml,v 1.5 2003/08/27 04:34:12 patriot1burke Exp $ -->

<server>

  <!-- ==================================================================== -->
  <!-- Mail Connection Factory                                              -->
  <!-- ==================================================================== -->

  <mbean code="org.jboss.mail.MailService"
         name="jboss:service=Mail">
    <attribute name="JNDIName">java:/Mail</attribute>
    <attribute name="User">nobody</attribute>
    <attribute name="Password">password</attribute>
    <attribute name="Configuration">
       <!-- Test -->
       <configuration>

          <property name="mail.smtp.starttls.enable" value="true"/>
          <property name="mail.smtp.host" value="smtp.gmail.com"/>
          <property name="mail.smtp.user" value="***"/>
          <property name="mail.smtp.password" value="***"/>
          <property name="mail.smtp.port" value="587"/>
          <property name="mail.smtp.auth" value="true"/>
          <property name="mail.debug" value="true"/>
       </configuration>
    </attribute>
  </mbean>

</server>

但是我看到这个输出,表示身份验证失败异常:

代码语言:javascript
复制
16:29:37,562 INFO  [STDOUT] 220 mx.google.com ESMTP ku7sm11540452pbc.31
16:29:37,578 INFO  [STDOUT] DEBUG SMTP: connected to host "smtp.gmail.com", port
: 587
16:29:37,578 INFO  [STDOUT] EHLO cl-4
16:29:38,000 INFO  [STDOUT] 250-mx.google.com at your service, [101.63.150.159]
250-SIZE 35882577
250-8BITMIME
250-STARTTLS
250 ENHANCEDSTATUSCODES
16:29:38,000 INFO  [STDOUT] DEBUG SMTP: Found extension "SIZE", arg "35882577"
16:29:38,000 INFO  [STDOUT] DEBUG SMTP: Found extension "8BITMIME", arg ""
16:29:38,000 INFO  [STDOUT] DEBUG SMTP: Found extension "STARTTLS", arg ""
16:29:38,000 INFO  [STDOUT] DEBUG SMTP: Found extension "ENHANCEDSTATUSCODES", a
rg ""
16:29:38,000 INFO  [STDOUT] STARTTLS
16:29:38,453 INFO  [STDOUT] 220 2.0.0 Ready to start TLS
16:29:38,718 INFO  [STDOUT] EHLO cl-4
16:29:40,750 INFO  [STDOUT] 250-mx.google.com at your service, [101.63.150.159]
250-SIZE 35882577
250-8BITMIME
250-AUTH LOGIN PLAIN XOAUTH
250 ENHANCEDSTATUSCODES
16:29:40,750 INFO  [STDOUT] DEBUG SMTP: Found extension "SIZE", arg "35882577"
16:29:40,765 INFO  [STDOUT] DEBUG SMTP: Found extension "8BITMIME", arg ""
16:29:40,765 INFO  [STDOUT] DEBUG SMTP: Found extension "AUTH", arg "LOGIN PLAIN
 XOAUTH"
16:29:40,765 INFO  [STDOUT] DEBUG SMTP: Found extension "ENHANCEDSTATUSCODES", a
rg ""
16:29:40,765 INFO  [STDOUT] DEBUG SMTP: Attempt to authenticate
16:29:40,765 INFO  [STDOUT] AUTH LOGIN
16:29:41,187 INFO  [STDOUT] 334 VXNlcm5hbWU6
16:29:41,187 INFO  [STDOUT] bm9b2R5
16:29:41,625 INFO  [STDOUT] 34 UGFzc3dvcmQ6
16:29:41,625 INFO  [STDOUT] cFzc3dvcmQ=
16:29:42,062 INFO  [STDOUT] 535-5.7.1 Username and Password not accepted. Learn
more at
535 5.7.1 http://support.google.com/mail/bin/answer.py?answer=14257 ku7sm1154045
2pbc.31
16:29:42,062 INFO  [STDOUT] in sendmail1 javax.mail.AuthenticationFailedExceptio
n

我搜索了这个问题,找到了this链接。它建议使用身份验证器。但问题是,在链接中,代码不使用来自mail-service.xml文件的会话。所有东西都是硬编码在程序本身中。从mail-service.xml获取会话时如何使用此身份验证器

编辑

我在mail-service.xml文件中将"mail.smtp.user“和"mail.smtp.password”的值分别添加到用户属性和密码属性中。开始起作用了。

代码语言:javascript
复制
<server>

  <!-- ==================================================================== -->
  <!-- Mail Connection Factory                                              -->
  <!-- ==================================================================== -->

  <mbean code="org.jboss.mail.MailService"
         name="jboss:service=Mail">
    <attribute name="JNDIName">java:/Mail</attribute>
    <attribute name="User">***</attribute>
    <attribute name="Password">***</attribute>
    <attribute name="Configuration">
       <!-- Test -->
       <configuration>

          <property name="mail.smtp.starttls.enable" value="true"/>
          <property name="mail.smtp.host" value="smtp.gmail.com"/>
          <property name="mail.smtp.user" value="***"/>
          <property name="mail.smtp.password" value="***"/>
          <property name="mail.smtp.port" value="587"/>
          <property name="mail.smtp.auth" value="true"/>
          <property name="mail.debug" value="true"/>
       </configuration>
    </attribute>
  </mbean>

</server><br>

但是我已经在"mail.smtp.user“和"mail.smtp.password”值中给出了用户和密码。为什么它不能从那里读出来呢?就是为了这个目的,对吧?

EN

回答 3

Stack Overflow用户

发布于 2012-06-27 04:13:53

理想情况下,JBoss将设置会话来为您进行身份验证,但如果不起作用,则可以使用Transport.connect方法指定用户名和密码。有关示例,请参见JavaMail常见问题解答。

票数 0
EN

Stack Overflow用户

发布于 2012-06-28 00:14:30

mail.smtp.password仍然是一个有效的配置属性吗?我知道旧版本的docs有它,但它似乎已经从http://javamail.kenai.com/nonav/javadocs/com/sun/mail/smtp/package-summary.html中删除了。我认为当它被删除时,大多数用于设置、管理和通过身份验证的JavaMail会话的文档都停止工作了。

票数 0
EN

Stack Overflow用户

发布于 2015-10-16 06:00:12

在服务器内的mail-service.xml中尝试这样做。

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<!-- $Id: mail-service.xml 62350 2007-04-15 16:50:12Z dimitris@jboss.org $ -->
<server>
<!-- ================================================== -->
<!-- Mail Connection Factory                                              --> 
<!-- ============================================== -->

<mbean code="org.jboss.mail.MailService"
     name="jboss:service=Mail">
<attribute name="JNDIName">java:/Mail</attribute>
<attribute name="User">type sender mail id here</attribute>
<attribute name="Password">type password</attribute>   
<attribute name="Configuration">
  <!-- A test configuration -->
  <configuration>
<property name="mail.smtp.auth" value="true"/>
    <property name="mail.smtp.starttls.enable" value="true"/>
    <property name="mail.smtp.socketFactory.class" value="javax.net.ssl.SSLSocketFactory"/>
    <!-- Change to your mail server prototocol -->
    <property name="mail.store.protocol" value="pop3"/>
    <property name="mail.transport.protocol" value="smtp"/>

    <!-- Change to the user who will receive mail  -->
    <property name="mail.user" value="nobody"/>

    <!-- Change to the SMTP gateway server -->
    <property name="mail.smtp.host" value="smtp.gmail.com"/>

    <!-- The mail server port -->
    <property name="mail.smtp.port" value="465"/>
    <!-- Change to the address mail will be from  -->
    <property name="mail.from" value=""/>

    <!-- Enable debugging output from the javamail classes -->
    <property name="mail.debug" value="false"/>
  </configuration>
</attribute>
<depends>jboss:service=Naming</depends>
</mbean>

</server>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11206272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档