Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ZF] Zend_Mail + odnośniki
Astarot
post
Post #1





Grupa: Zarejestrowani
Postów: 90
Pomógł: 4
Dołączył: 5.02.2006

Ostrzeżenie: (0%)
-----


Witam,
Mam następujący problem z Zend_Mail:
Próbuję wysłać wiadomość email zawierającą kod html, w tym odnośniki <a href=..
Jednak po wysłaniu emaila i odebraniu go na skrzynce nie wszystkie linki są "klikalne".
W podglądzie kodu źródłowego otrzymanego emaila widzę, że odnośnik nie jest poprawnie kodowany
a wygląda to mniej więcej tak:

  1. <a href=3D"/sciezka/plik.txt"...


Dodawany jest kod 3D uniemożliwiający prawidłową interpretację.

Całość dzieje się dla kodowania

  1. Content-Transfer-Encoding: quoted-printable


natomiast wiadomość z kodowaniem

  1. Content-Transfer-Encoding: multipart/related


w źródle emaila wygląda dobrze, jednak w samym emailu też nie działa.

dodam jeszcze standardowy kod którym wysyłam maila

  1. $mail = new Zend_Mail('UTF-8');
  2. $mail->setBodyHtml($content);
  3. $mail->setFrom('od_kogo', 'od_kogo');
  4. $mail->addTo($email);
  5. $mail->setSubject($subject);
  6. $mail->send();


Eksperymentowałem z $mail->setType.. ale bez rezultatów jak do tej pory

Czy ktoś może spotkał się z tym problemem?

Ten post edytował Astarot 8.12.2011, 14:53:31


--------------------
torrenty
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
morthan
post
Post #2





Grupa: Zarejestrowani
Postów: 50
Pomógł: 4
Dołączył: 15.06.2010

Ostrzeżenie: (0%)
-----


A jak tworzysz treść maila?

Ja robię to tak:

  1. $bodyHtml = <<<BODY
  2.  
  3. <a href="{$jakas_zmienna}">z adresem</a>
  4.  
  5. BODY;
  6.  
  7. $mail->setBodyText($bodyHtml);


Nie zapomnij $bodyHtml docisnąć to lewego marginesu dokumentu.

EDIT: literówka tongue.gif

Ten post edytował morthan 8.12.2011, 15:00:53
Go to the top of the page
+Quote Post
Astarot
post
Post #3





Grupa: Zarejestrowani
Postów: 90
Pomógł: 4
Dołączył: 5.02.2006

Ostrzeżenie: (0%)
-----


Dodaje tagi html standardowo jak w manualu zf

  1. $mail->setBodyHtml('Jakiś <b>tekst</b> html <a href="/sciezka/x.jpg">etykieta</a>.....');


--------------------
torrenty
Go to the top of the page
+Quote Post
morthan
post
Post #4





Grupa: Zarejestrowani
Postów: 50
Pomógł: 4
Dołączył: 15.06.2010

Ostrzeżenie: (0%)
-----


Spróbuj napisać tak jak Ci mówię. Wygeneruj całą treść i ją wstaw jako body za pomocą:
  1. setBodyText()
.

Na koniec:

  1. $mail->send();


i po sprawie.
Mi tak działa pięknie i nie mam żadnych problemów z linkami w mailach.
Go to the top of the page
+Quote Post
Astarot
post
Post #5





Grupa: Zarejestrowani
Postów: 90
Pomógł: 4
Dołączył: 5.02.2006

Ostrzeżenie: (0%)
-----


SetBodyText() nie służy wysyłania emaili w formacie HTML, po tej zmianie wypluwa mi w skrzynce cały kod html jako zwykły tekst.


--------------------
torrenty
Go to the top of the page
+Quote Post
morthan
post
Post #6





Grupa: Zarejestrowani
Postów: 50
Pomógł: 4
Dołączył: 15.06.2010

Ostrzeżenie: (0%)
-----


Przepraszam, masz rację. Odgrzebałem tą funkcję i zgadza się. Nadpisałem setBodyHtml() tą funkcją.Upraszczając, tworzę cały tekst wiadomości wcześniej z całymi linkami tak jak pisałem wyżej, a potem wpisuję ją w treść wiadomości.
Spróbuj tak zrobić i napisz czy Ci działa jak chcesz.
Go to the top of the page
+Quote Post
Astarot
post
Post #7





Grupa: Zarejestrowani
Postów: 90
Pomógł: 4
Dołączył: 5.02.2006

Ostrzeżenie: (0%)
-----


Wciąż nie rozwiązałem problemu, jakieś pomysły?


--------------------
torrenty
Go to the top of the page
+Quote Post
ersonic
post
Post #8





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 29.06.2005

Ostrzeżenie: (0%)
-----


Pod kazdym klientem poczty to wystepuje ja miałem podbny problem ale tylko pod thunderbird
Ja strsuje coś takiego przy wysyłkach HTML z grafikami
$_htmlResultNewPass = '<a href="http://example.com">tekst</a>';

$oMailCahngePassword = new Zend_Mail('UTF-8');
$oMailCahngePassword->setHeaderEncoding(Zend_Mime::ENCODING_BASE64);
$oMailCahngePassword->setBodyHtml($_htmlResultNewPass);
..
$oMailCahngePassword->send();

Działa bez problemu

Ten post edytował ersonic 21.02.2012, 19:11:50
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 03:43