2012-09-27 21 views
3

我正在使用SOAP合作伙伴API,並且我有一個開發人員版。我通過使用API​​來創建用戶。在創建用戶時,我想通過電子郵件發送這些用戶臨時密碼,用於登錄SalesForce。如何使用API​​通過電子郵件向SalesForce用戶發送臨時密碼?

這是我的代碼:

SaveResult[] results = connection.create(new SObject[] { user }); 

if (results[0].isSuccess()) 
{ 
out.println("Created user: " + results[0].getId()); 

//connection.setPassword(results[0].getId(), "password"); 
ResetPasswordResult rpr = connection.resetPassword(results[0].getId()); 
String result = rpr.getPassword(); 
    System.out.println("The temporary password for user ID " + results[0].getId() 
     + " is " + result); 
} 
else 
{ 
out.println("Error: " + results[0].getErrors()[0].getStatusCode() + 
        ":" + results[0].getErrors()[0].getMessage()); 
} 

這是我在控制檯收到輸出:

The temporary password for user ID 005E0000000MwkZIAS is ucQD2PADs 

然而,用戶接收不到任何密碼。 :-(

感謝,

的Wap勞

回答

3

如果你建立&在你的SOAP請求您可以控制哪些類型的郵件將得到您的要求發送傳遞一個EmailHeader

看起來您正在使用WSC,因此您可以在調用resetPassword之前添加此調用,這將啓用發送給用戶的電子郵件。這應該發送標準的重置密碼電子郵件。

connection.setEmailHeader(false, false, true); 
+0

非常感謝superfell。有效! – waprau

-1

使用這個類來發送電子郵件。包括你要發送的用戶字符串中的PWD變量。有這麼闡明所有的東西

爲例

http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_classes_email_outbound.htm

+1

他從API調用此 - 如果他能利用的Apex代碼,那麼最好的行動方針是使用'System.resetPassword呼叫(用戶ID,真)',它會自動發送一封電子郵件給用戶一個密碼重置鏈接。在代碼中創建出站電子郵件將是矯枉過正的。 – JCD

+0

哈 - 我學到了一些新東西。 – user11235813

相關問題