Java实现创建outlook邮箱账号

 

现在我们开始。。。。。。话说从研究这个功能到实现它前后大致花了一周的时间,毕竟用Java实现这个不是一件简单的事情,谁让EXCHANGE和.NET更亲呢。一开始想了两个方案:

 

交给.NET团队开发,最终包装个接口出来。服务器安装PowerShell on Linux,远程调用PowerShell操作EXCHANGE。第一个方案转瞬即逝,不要问我为什么!那就第二个方案呗,拉来运维团队的同学帮忙搞一下,结果centos6真心装不上,各种包不支持,还把测试服务器装挂了。得出的结论是只有centos7以上才能安装完美运行,算了,完美放弃。Linux不行,咱就放在windows服务器吧,毕竟PowerShell是微软亲儿子啊。于是就有了最终的解决方案:Java SSH2 PowerShell,具体的想法是Java环境下通过SSH2连接上远程的windows服务器,进入特定目录下执行PowerShell脚本创建邮箱。

至于SSH2和PowerShell是啥,这里就不重复叙述了,感兴趣的同学可以百度了解下。

PowerShell学习资料地址:http://www.pstips.net/powershell-online-tutorials/

下面直接上步骤吧

1:SSH2连接远程服务器

这个很简单,下载freesshd软件,按照教程安装就行,安装完成之后使用putty工具连接测试。

 

freesshd下载地址:

http://www.freesshd.com/?ctt=download

freesshd安装参考百度经验的文章:

https://jingyan.baidu.com/article/f7ff0bfc1ebd322e27bb1344.html

putty安装地址:

https://pan.baidu.com/s/1dG1L1F7密码:gwou

 

putty测试连接成功后,可以编写Java代码连接了,该过程需要ganymed-ssh2-build210.jar的支持,所以需要添加maven坐标

 

<dependency> <groupId>ch.ethz.ganymed</groupId> <artifactId>ganymed-ssh2</artifactId> <version>262</version> </dependency>

连接代码案例

 

import ch.ethz.ssh2.Connection; import ch.ethz.ssh2.Session;

 

/** * ssh登录远程服务器 * @return */ public boolean login(){ boolean result = false; try { conn = new Connection(ip,port); conn.connect();//连接 if(!conn.authenticateWithPassword(userName, userPwd)){ logger.error(“通过SSH2登录OUTLOOK邮件服务器错误,验证失败”); conn.close(); return result; } result = true; } catch (IOException e) { logger.error(“通过SSH2登录OUTLOOK邮件服务器异常”,e); } return result; } /** * 退出远程服务器 * @return */ public void exitConnect(){ if(conn != null){ conn.close(); } }2:Powershell脚本编写与测试

这边提供一个get-mailbox方法的脚本getEmail.ps1,用于获取员工的邮箱信息

 

set-executionpolicy remotesigned $user = $args[0] $password = ConvertTo-SecureString -String $args[1] -AsPlainText -Force $credential = New-Object -TypeName “System.Management.Automation.PSCredential” -ArgumentList $user,$password $session = New-PSSession -Authentication Kerberos -Credential $credential -ConfigurationName microsoft.exchange -ConnectionUri http://XXXXXXXX(你的邮件服务器)/powershell Import-PSSession $session get-mailbox $args[2]
$args[i]代表给PS脚本传递的参数,$args[0]是outlook管理员的用户名,$args[1]是管理员登录的密码,$args[2]是需要查询的AD账号。

测试案例:

测试结果:

接下来只要将PS脚本中的get-mailbox $args[2]方法替换成Enable-Mailbox $args[2] -Database $args[3]就行,$args[2]代表员工的AD账号,$args[3]代表员工的邮箱创建在哪个数据库中。

3:Java通过ssh2调用命令执行PowerShell脚本

获取远程连接的session,执行脚本方法。

如果,你对上面的内容还有疑问,推荐选择西部数码企业云邮箱!有专人协助您解答邮箱疑问。

西部数码企业云邮箱,采用分布式集群架构,数据多份写入,规避单点故障,全球智能中继,更安全稳定。企业邮箱无限空间,极速收发,支持层级子文件夹,邮件撤回,日程微信通知、邮件监管、自定义工作报告功能、邮件归档、SSL部署等几十项功能。而且价格实惠,还可以免费试用!

企业邮箱免费试用入口:https://www.west.cn/services/mail/

赞(0)
声明:本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-62778877-8306;邮箱:fanjiao@west.cn。本站原创内容未经允许不得转载,或转载时需注明出处:西部数码知识库 » Java实现创建outlook邮箱账号

登录

找回密码

注册