为电子邮件链接插入UUID的随机空间

时间:2014-02-04 13:46:19

标签: python html django email uuid

无论出于何种原因,随机空间都会插入到记录的UUID中。我发送电子邮件给人们点击确认或取消链接更新我的数据库中的记录。我使用UUID确保他们正在更新正确的记录。

我为forms.py中的链接生成HTML。如果我只有cancel_donation_link,那么它可以正常工作。确认链接添加后。它在取消的链接UUID之间添加一个空格。

for special_word in values['special_words']:                     
    print special_word                                           
    text = values['text']                                        
    print text                                                   
    uuid = rescheduled_donor.uuid                                

    if special_word == "confirm_donation_link":                  
        values['text'] = text.replace(                           
            special_word,                                        
            '<a href="http://{0}/actions/email_blasts/confirm/' \
            '{1}">Confirm Donation</a>'.format(                  
                domain,                                          
                uuid                                             
            )                                                    
        )                                                        
        values['special_words'].remove(special_word)             
        continue                                                 

     if special_word == "cancel_donation_link":                  
         values['text'] = text.replace(                          
             special_word,                                       
             '<a href="http://{0}/actions/email_blasts/cancel/' \
             '{1}">Cancel</a>'.format(                           
                 domain,                                         
                 uuid                                            
             )                                                   
         )                                                       
         values['special_words'].remove(special_word)    
         continue        

在我将所有上下文发送到电子邮件模板之前,我打印出显示UUID之间没有空格的html

<div>If you wish to cancel your donation click here:&nbsp; <a href="http://127.0.0.1:8000/actions/ema
il_blasts/cancel/f42f1915-2e6b-401c-bd0f-e99ba54e9ea5">Cancel</a>  </div>

发送电子邮件后,URL在UUID部分中有一个空格。它被%20取代。     取消

模板

 <div style="color:#500050">                                            
    <img src="{{ STATIC_URL}}images/email_logo2.jpg">                   
    <p>                                                                 
        {{ message|safe }}                                              
    </p>                                                                

    <p>                                                                 
        {% for image in pages %}                                        
            <img src="{{ MEDIA_URL }}{{ image }}">                      
        {% endfor %}                                                    
    </p>                                                                

    <p>                                                                 
        {{ closing_message|safe }}                                      

    </p>                                                                
 </div>    

我不知道为什么或如何插入这个随机空间。

HTML From Email

<div style="color:#500050">

        </p><div>If you have any questions or need any assistance you may reply by e-mail or call &nbsp;customer service <a href="tel:631-234-0000" value="+16312340000" target="_blank">631-234-0000</a>.<br></div><div><br></div><div><br></div><div>To confirm this new date, click here:&nbsp; <a href="http://127.0.0.1:8000/actions/email_blasts/confirm/1544ce69-3c44-4554-839a-a2fd09f049e3" target="_blank">Confirm Donation</a>  </div><div><br></div><div>To pick a different date, click here:&nbsp; <a href="http://127.0.0.1:8000/external/1544ce69-3c44-4554-839a-a2fd09f049e3/" target="_blank">Donate</a> </div><div><br></div><div>To cancel your donation, click here:&nbsp; <a href="http://127.0.0.1:8000/actions/email_blasts/cancel/1544ce%2069-3c44-4554-839a-a2fd09f049e3" target="_blank">Cancel</a> <br></div>
    <p></p>

    <p>

    </p>

    <p>
        <br>

    </p>
 </div>

1 个答案:

答案 0 :(得分:0)

我最后更改了网址的字符串部分以使用reverse功能而不是硬编码。我还注意到,与在我的webfaction服务器上的登台站点相比,我在笔记本电脑上本地运行时的情况有所不同。

if special_word == "cancel_donation_link":                              

    values['text'] = text.replace(                           
        special_word,                                        
        '<a href="{0}{1}">Cancel</a>'.format(                
            domain,                                          
            reverse('email_blasts_cancel', kwargs={'donor_uuid': uuid})
        )                                                    
    )