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
您好jacob,我找到了一种解决这个问题的方法,即在添加列表到营销邮件之前,我放了一个system.threading.thread.sleep(毫秒)。它现在工作完美。您是否有任何想法或有任何解决方案可将每个收件人信息添加到营销电子邮件中,而无需重新创建它们? – belltric
我找到了如何将收件人信息添加到营销电子邮件的方法。 我遇到的另一个问题是,在尝试向营销电子邮件中添加类别后,我前往UI以检查营销电子邮件是否属于该类别。该类别不会变成粗体。但是,当我创建营销电子邮件并选择类别时,该类别将变为粗体。你有什么想法可能会导致这种情况? – belltric
代码 '将时事通讯类别添加到时事通讯 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