2016-02-04 32 views
-1

在Softlayer Portal中,我订购了电子邮件传送服务。我可以在列表中看到它。但如何发送电子邮件与Java API。在softlayer上发送邮件

我试图用下面的代码发送电子邮件。

Email email = new Email(); 
email.setfrom(); 
email.setBody(); 
email.setTo(); 
Boolean result = service.sendEmail(email);` 

,但它显示的错误是“ID需要调用服务”,如果您共享样本代码

,这将是有帮助。 谢谢

回答

1

要使用sendEmail方法,有必要指定一个初始化参数(SoftLayer_Network_Message_Delivery_Email_SendgridInitParameters),你可以在“必需的头部”部分看到这个从SoftLayer_Network_Message_Delivery_Email_Sendgrid::sendEmail方法,你可以得到有关初始化参数here更多信息。

所以,你可以用下面的方法得到 “SoftLayer_Network_Message_Delivery_Email_Sendgrid” 对象:SoftLayer_Account::getNetworkMessageDeliveryAccounts,这里休息请求:

https://$username:[email protected]/rest/v3/SoftLayer_Account/getNetworkMessageDeliveryAccounts 

Method: Get 

你会得到这样的结果:

0: { 
"accountId": 123456 
"createDate": "2015-05-15T06:35:56+12:00" 
"id": 24564 
"modifyDate": "2016-01-08T05:59:57+11:00" 
"password": "Password123*" 
"typeId": 21 
"username": "[email protected]" 
"vendorId": 1 
"emailAddress": "[email protected]" 
"smtpAccess": "1" 
} 

所以,你需要在您使用的服务(SoftLayer_Network_Message_Delivery_Email_Sendgrid)中指定“id”。它应该像这样在Java:

Long sendGridId = new Long(24564); 
Sendgrid.Service sendgridService = Sendgrid.service(client, sendGridId); 

它不工作对我很好,似乎Java的SoftLayer的API客户端有问题,指定“SoftLayer_Network_Message_Delivery_Email_Sendgrid”服务初始化参数。如果您无法指定此SoftLayer API Client for Java Issues,则可以验证并提交问题。

其实,我可以提供工作正常休息的请求:

https://$user:[email protected]/rest/v3/SoftLayer_Network_Message_Delivery_Email_Sendgrid/24564/sendEmail 

Method: Post 

{ 
    "parameters":[ 
     { 
     "body":"set me", 
     "from":"set me", 
     "to":"set me", 
     "subject":"set me" 
     } 
    ] 
} 

参考文献:

http://sldn.softlayer.com/reference/services/SoftLayer_Network_Message_Delivery_Email_Sendgrid/sendEmail