2015-05-27 122 views
4

步驟SendGrid營銷電子郵件延遲?

  1. 創建收件人列表
  2. 創建營銷電子郵件
  3. 添加電子郵件,收件人列表
  4. 指定收件人列表營銷電子郵件

當調試慢慢地,我管理從sendgrid傳遞所有成功消息的步驟。

但在非調試模式下,儘管我向收件人列表成功添加了電子郵件(結果從sendgrid返回),但在步驟4中,我收到了結果返回沒有收件人的列表。我刷新了瀏覽器,並在收件人列表中看到了電子郵件。

我試圖把timer.interval開始之前處理第4步,但也得到相同的結果返回。

VB ProcessHandler代碼

' Add email and name to recipient list 
If oSendMarketingEmail.AddEmailToList(oItemDetails.Email, oItemDetails.Full_Name, sRecipientList) = False Then Exit Try 

' Wait for the email and name added to recipient list 
Dim timer As New Timers.Timer 
timer.Interval = 20000 

' Assigning recipient list to marketing email 
    If oSendMarketingEmail.AddListToMarketingEmail(sMarketingEmailName, sRecipientList) = False Then Exit Try 

VB功能代碼

Public Function AddEmailToList(sEmailAddress As String, sName As String, sRecipientList As String) As Boolean 

     Dim ResultsHTML As String = "" 

     Dim URL As String = (Convert.ToString("http://sendgrid.com/api/newsletter/lists/email/add.xml?list=") & sRecipientList) + "&data=" + "{""email"":""" + sEmailAddress + """,""name"":""" + sName + """}" + "&api_user=" + SendGridUserName + "&api_key=" + SendGridPassword 
     Dim SendGridResponse As String = PerformHTTPGet(URL) 
     ResultsHTML += (Convert.ToString("Adding email to List: ") & SendGridResponse) + "<br/>" 

     ' Check respond status - success 
     If Not ResultsHTML.Contains("insert") Then logger.log.Info(ResultsHTML) : Return False Else Return True 

    End Function 


    Public Function AddListToMarketingEmail(sMarketingEmailName As String, sRecipientList As String) As Boolean 

     Dim ResultsHTML As String = "" 

     'Assign list to marketing email 
     Dim URL As String = (Convert.ToString((Convert.ToString("http://sendgrid.com/api/newsletter/recipients/add.xml?name=") & sMarketingEmailName) + "&list=") & sRecipientList) + "&api_user=" + SendGridUserName + "&api_key=" + SendGridPassword 
     Dim SendGridResponse As String = PerformHTTPGet(URL) 
     ResultsHTML += (Convert.ToString("Assigning Marketing Email to List: ") & SendGridResponse) + "<br/>" 

     ' Check respond status - success 
     If Not ResultsHTML.Contains("success") Then logger.log.Info(ResultsHTML) : Return False 

    End Function 

回答

0

在SendGrid,列表計數可能需要一點時間來更新。 「強制」它的一種方法是查詢完整列表,這會觸發系統計數,並更新計數,然後允許您正確連接它。

+0

您好jacob,我找到了一種解決這個問題的方法,即在添加列表到營銷郵件之前,我放了一個system.threading.thread.sleep(毫秒)。它現在工作完美。您是否有任何想法或有任何解決方案可將每個收件人信息添加到營銷電子郵件中,而無需重新創建它們? – belltric

+0

我找到了如何將收件人信息添加到營銷電子郵件的方法。 我遇到的另一個問題是,在嘗試向營銷電子郵件中添加類別後,我前往UI以檢查營銷電子郵件是否屬於該類別。該類別不會變成粗體。但是,當我創建營銷電子郵件並選擇類別時,該類別將變爲粗體。你有什麼想法可能會導致這種情況? – belltric

+0

代碼 '將時事通訊類別添加到時事通訊 Dim URL As String =「https://api.sendgrid.com/api/newsletter/category/add.json」+「&api_user =」+ SendGridUserName +「&api_key =」+ SendGridPassword + 「&類別=簡訊」 + 「&name =」 + EncodedNewsletterName 昏暗SendGridResponse的String = PerformHTTPGet(URL) ResultsHTML + =(Convert.ToString( 「添加類別通訊: 」)SendGridResponse)+「
」 '檢查回覆狀態 - 成功 如果不是結果HTML.Contains(「success」)然後logger.log.Info(ResultsHTML):返回False Else返回True – belltric