本来就想测试下发送邮件,结果不到十行代码的东西搞了 N 久,回顾一下记录之
1、搭建环境
BAE 内置的一些基础 class 百度没提供 jar 包,貌似是集成在 Baidu Eclipse 插件里的,而 Baidu Eclipse 插件只适用于 Eclipse 3.7.x 版本,所以还要注意 Eclipse 的版本,如果是 MyEclipse,到安装目录 readme/readme_eclipse.html 查看 Eclipse 的版本
Baidu Eclipse 插件在线安装地址 http://bs.baidu.com/cloud-develop-toolkits/
懒人直接下载集成好的 eclipse,http://developer.baidu.com/wiki/index.php?title=docs/cplat/ide/install#.E4.B8.80.E9.94.AE.E5.AE.89.E8.A3.85
jetty 插件,由于 BAE 是跑在 jetty 下的,所以他的项目如果用 tomcat 跑的话可能跑不起来
eclipse 在线安装地址 http://run-jetty-run.googlecode.com/svn/trunk/updatesite
不过我试着好像这个版本的有问题,虽然能运行,但是运行配置的地方挂了,不知道是不是我人品有问题
如果有问题的话可以用老版本试试 http://run-jetty-run.googlecode.com/svn/trunk/updatesite-old
2、测试环境
下个 BAE 云服务 SDK 示例
http://bcs.duapp.com/cplat-01/demo%2Fcservice_demo_java.zip
导入后应该各种错误
首先转换成 web 项目,右键项目-->properties-->Project Facets,勾上 Dynamic Web Module,然后下面有个链接,点他修改部署根目录(最好修改根目录到/下)和 WEBROOT 目录,再到 Deployment Assembly 里看看 Deploy 的配置是不是正确
现在还缺 BAE 的 lib,右键项目-->Baidu-->Convert to BAE (Java) project,转换成 BAE 项目
如果还有错,看下项目的 3 个 lib 是不是加到 Web App Lib 下了,貌似他原来不是在 WEB-INF 下的
没问题后右键项目 Run As-->Run Jetty
3、发送邮件
到这基本就算完了,BAE 发邮件不用我们直接指定 smtp 服务器、发件邮箱什么的,用百度的消息系统,代码很简单,百度也给例子了 http://developer.baidu.com/wiki/index.php?title=docs/cplat/mq/sdk/java
如果我们只用来简单发邮件的话,只用发邮件的代码就可以了,队列到 BAE 管理中心手工创建一个就可以用了,不用写在程序里
//(1)通过工厂类获得BCMSRestClient类实例 //BaeBcms bcms = BaeFactory.getBaeBcms(); BaeBcms bcms = new BCMSRestClient(new CServKeyPair("1sxxxxxxxxxxxxxxxxx", "H0xxxxxxxxxxxxxxxxx"), "http://bcms.api.duapp.com"); //发送邮件 MailRequest mailRequest = new MailRequest(); mailRequest.setQueueName("9553xxxxxxxxxxxxxxxxxxx"); mailRequest.setMessage("<!--HTML--><p>hello world!</p>"); mailRequest.addMailAddress("root@tly.pw"); mailRequest.setFrom("from@baidu.com"); mailRequest.setV("2"); mailRequest.setSubject("title"); bcms.mail(mailRequest);
要注意一点,如果是本地测试,不能用工厂类获取BCMS实例,那个在BAE上是可以被注入进去的,本地只能自己指定AK和SK
最后就是,那个邮件来源不知道是要符合什么规则还是压根就是摆设,没有效果,想来也不会任意指定,太逆天了
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于