2014-09-28 2 views
-1

PHP를 사용하여 매우 긴 링크를 보내야합니다. 알려진 문제 : 링크가 전자 메일 클라이언트에 의해 손상됩니다. 일반/텍스트 또는 html 메일로 시도했지만 다른 스레드에서 제안 된대로 대괄호()로 URL을 넣습니다. 아무 도움이되지 않습니다. 나는 url 단축키와 데이터베이스로이 문제를 해결할 수있는 가능성에 대해서 알고 있지만, !!! 수백 자의 링크를 보낼 수 있습니다. 예 : 이베이, 아마존 않습니다 ... stackoverflow에서 등록을 comfirming에 대한 링크가 250 개 이상의 문자가 포함되어 있으므로?! 이러한 메일의 소스 코드를 보면 기본적으로 모든 행이 76자를 초과합니다. 나는 PHP 워드 랩과 같은 것을 시도했다. 결과; 소스 코드는 동일하게 보이지만 내 링크가 끊어져있어 링크가 맞지 않습니다! 어떤 아이디어? 나는 도움을 아주 기뻐할 것이고, 나를 귀찮게한다. !!!! :)PHP 메일러에서 보낸 긴 전자 메일 링크가 깨졌습니다.

답변

0

나는 혼자서 문제를 해결할 수 있었다. 첫째, 링크의 특수 문자를 인코딩해야합니다 (예 : Thunderbird가 이제 이와 같이 인코딩 된 링크를 허용합니다). 둘째, 기본적으로 줄 바꿈을 76 문자 뒤에 설정하십시오. 연결이 끊어 지거나 더 이상 클라이언트 프로그램에 의해 링크로 인식되지 않게하려면 각 행을 재조합하기 위해 "="로 끝나야합니다 ...

<?php 

    $url = 'http://domainxy.com/index.php'; 

    $ending = '?var1=gsgsdgsfgdhfjfgj&var2=sdferewerwrr&var3=jghjghjkloozzzz&var4=ghajsldahskhdhriehfsjndfnjnjjfnjsnjdfhksö&var5=öäüöü'; 
    $ending = utf8_encode($ending); 
    $ending = rawurlencode($ending); 

    $link = wordwrap($url . $ending, 75, "=<br />\n", true); 

    echo $link; 

    ?> 

    /* 
    Encodes and devides the link like this: 
    http://domainxy.com/index.php%3Fvar1%3Dgsgsdgsfgdhfjfgj%26var2%3Dsdferewerw= 
    rr%26var3%3Djghjghjkloozzzz%26var4%3Dghajsldahskhdhriehfsjndfnjnjjfnjsnjdfh= 
    ks%C3%B6%26var5%3D%C3%B6%C3%A4%C3%BC%C3%B6%C3%BC 
    */