使用WSO2向用户发送电子邮件以进行验证

时间:2014-07-11 14:31:08

标签: smtp wso2carbon wso2is email-verification

我对wso2完全不熟悉。我正在尝试向用户发送一封电子邮件,以验证我(管理员)在默认PRIMARY域中为特定公司(而不是通过gmail)创建的新帐户。使用该链接,他们应该能够登录并设置新密码。为此,我遵循的步骤是:

(1)设置identity-mgt.properties文件

# Identity listener is enable

Identity.Listener.Enable=true

# Enable email sending function when recovering the account and verifying the user creation

Notification.Sending.Enable=true
Notification.Expire.Time=7200

# Enable internal email sending module. If "false", email sending data would be available to application via webservice. Then application can send the email using its own email sender 

Notification.Sending.Internally.Managed=true

# Enable verification of account creation. When self registration is done,  user would be verified by sending email (confirmation link) to user's email account

UserAccount.Verification.Enable=true

UserAccount.Recovery.Enable=false


# Whether user can do the verification or not. If value is defined for role, Then the email is sent to users that have been assigned to this role. Not for the user who is registered.

UserAccount.Verification.Role=

# Whether captcha verification is done by identity server or application level

Captcha.Verification.Internally.Managed=true

# Whether temporary password are used when creating users or recovering accounts

Temporary.Password.Enable=false
Temporary.Password.Default.Value=password
Temporary.Password.OneTime=false
Temporary.Password.Expire.Time=0

# Enable authentication rules other than password check 

Authentication.Policy.Enable=true

# Enable following checking on authenication.  By default account lock check is enable 

Authentication.Policy.Check.Account.Exist=false 
Authentication.Policy.Check.Account.Lock=false
Authentication.Policy.Check.OneTime.Password=false
Authentication.Policy.Check.Password.Expire=false

# Configuration to build an authentication policy

Authentication.Policy.Password.Expire.Time=0
# If account verification is not enabled, following property will decide where user must be lock or not after user is created 
Authentication.Policy.Account.Lock.On.Creation=false
Authentication.Policy.Account.Lock.Time=0
Authentication.Policy.Account.Lock.On.Failure=false
Authentication.Policy.Account.Lock.On.Failure.Max.Attempts=0

# Define pluggable extension points

Identity.Mgt.Random.Password.Grenerator=org.wso2.carbon.identity.mgt.password.DefaultPasswordGenerator
Identity.Mgt.User.Data.Store=org.wso2.carbon.identity.mgt.store.UserStoreBasedIdentityDataStore
Identity.Mgt.Notification.Sending.Module.1=org.wso2.carbon.identity.mgt.mail.DefaultEmailSendingModule
Identity.Mgt.User.Recovery.Data.Store=org.wso2.carbon.identity.mgt.store.RegistryRecoveryDataStore


# Define password policy enforce extensions

Password.policy.extensions.1=org.wso2.carbon.identity.mgt.policy.password.DefaultPasswordLengthPolicy
Password.policy.extensions.1.min.length=6
Password.policy.extensions.1.max.length=12
Password.policy.extensions.2=org.wso2.carbon.identity.mgt.policy.password.DefaultPasswordNamePolicy
Password.policy.extensions.3=org.wso2.carbon.identity.mgt.policy.password.DefaultPasswordPatternPolicy
Password.policy.extensions.3.pattern=^((?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%&*])).{0,100}$

(2)设置axis2.xml文件.... 在这里我取消注释了transportSender名称=" mailto"部分并添加参数值。我也取消注释transportReceiver name =" mailto"部分 。 transportSender名称中的参数=" mailto"部分是: -

<transportSender name="mailto"
                     class="org.apache.axis2.transport.mail.MailTransportSender">
        <parameter name="mail.smtp.from"></parameter>
        <parameter name="mail.smtp.user"></parameter>
        <parameter name="mail.smtp.password"></parameter>
        <parameter name="mail.smtp.host"></parameter>

        <parameter name="mail.smtp.port"></parameter>
        <parameter name="mail.smtp.starttls.enable"></parameter>
        <parameter name="mail.smtp.auth"></parameter>
    </transportSender>

(3)这是email-admin-config.xml文件某些部分的默认设置

<configuration type="askPassword">
  <targetEpr></targetEpr>
  <subject>WSO2 Carbon - Password Change for New Account</subject>
  <body>
Hi {first-name}

Please change your password for the newly created account : {user-name}. Please click the link below to create the password.

http://localhost:9443/InfoRecoverySample/infoRecover/verify?confirmation={confirmation-code}

If clicking the link doesn't seem to work, you can copy and paste the
link into your browser's address window.
  </body>
  <footer>
Best Regards,
WSO2 Carbon Team
http://www.wso2.com
  </footer>
  <redirectPath></redirectPath>
</configuration>

现在,当我通过选择&#34;提供密码&#34;来创建新用户时选项我收到此错误。但是用户是在默认域中创建的。

&#34;无法添加用户PRIMARY / addUser。错误是:doPostAddUser&#34;

时出错

我搜索了许多网站中的完整流程,但没有得到任何关于不同文件中每个参数的正确文档,以便为我的使用进行自定义。

请告诉我哪里出错,以及我需要配置的所有其他内容。 此外,还需要了解所有参数的来源。

提前致谢。

2 个答案:

答案 0 :(得分:1)

我必须添加

-Djava.net.preferIPv4Stack=true 

wso2server脚本中。

邮件发送就像一个魅力

答案 1 :(得分:0)

确认repository\conf\security\identity-mgt.properties中的以下参数设置为false:

Authentication.Policy.Account.Lock.On.Creation=false