PHP e-posta doğrulama - nasıl bir mesaj organize?

6 Cevap php

Bir kullanıcıya bir e-posta doğrulama iletisi gönderdiğinizde, nasıl böyle bir şey aramak için inşaa ederler:

alt text

Ben bağlantılar nasıl eklerim? etiketlerini kullanarak? ve newlines?

$message = 'Thanks for signing up!' - a newline afterwards...
then blablablah *link to confirmation*

Gerçekten bu her türlü yardımı takdir ediyorum.

6 Cevap

Bu Gönderdiğiniz e-postanın türüne bağlıdır. Modern e-posta istemcileri e-postanın 2 türlerini destekler:

  • Text - Bu durumda sadece ham metin gibi mesajınıza bağlantı eklemek. Özel biçimlendirme gereklidir, ancak bu bağlantıyı işlemek için e-posta istemcisi bağlı olacak. Çoğu e-posta istemcileri link olarak http:// başlayarak dize yorumlamak olacaktır.
  • Html - Bu durumda, sadece her zamanki html kodu olarak bağlantı eklemek <a href="...">...</a>. Çoğu e-posta ajanlar temel HTML iyi kavramak.

Varsayılan olarak mail() function ham metin e-posta gönderir. İşte küçük bir örnek:

$lines = array(
    "Hello!",
    "Your password is ...",
    "Click following link to unsubscribe:",
    "http://your_site/unsubscribe?..."
);
$body = implode("\r\n", $lines); ## join lines
mail($to, $subject, $body);      ## and send text email

Eğer düz metin e-posta programları ile göndermek eğer neredeyse her zaman tıklanabilir bir bağlantı içine bir URL dönüştürür. Aksi takdirde bir HTML e-posta gönderebilirsiniz.

Nasıl kodunuzu düzenlemek için:

Smarty şablonları da bunun için çok uygundur. Eğer için değişkenler geçmek bir. Tpl şablonu olabilir, böylece e-posta şablonları yalnızca gerektiğinde etiketler / alanlara sahip kendi dosyalarında bulunmaktadır. Sonra PHP, bu içerik çekmek ayrıştırmak ve e-posta gibi vücut gönderebilirsiniz.

Sadece bağlantı kurmaya ve e-posta gövdesine ekleyin. Posta istemcisi bir bağlantı olduğunu anlamadan. Alternatif tam html e-posta yolu aşağı gidebilir.

Bunun için birkaç seçeneğiniz vardır.

1.Eğer gibi sonra mim tipi, kurulum $ mesaj var olarak düz metin kullanabilirsiniz:

$message = "Thank you... \n\r";
$message.= "next line... \n\r";

veya bir yorumlu metin kullanın

$message = <<<BLOCK
Thank you...
next line...
BLOCK;

Çoğu e-posta programları bağlantısını dönüştürmek gerektiğini, ben düşünüyorum. Ama açıkça bunu yapmak gerekirse,

Her zaman e-posta için bir html mim türü kullanmak ve sadece bunu ileti gövdesi gibi temel HTML sağlayabilir 2.Then.

Diğerleri dediğim gibi, sadece e-posta gönderin ve müşteri tıklanabilir ne olduğunu anlamaya izin.

Sadece örneğin, posta komut dosyası tarafından erişilebilir bir klasöre basit bir metin dosyasıdır şablon oluşturmak

Thanks for signing up

This is your login data
------------
u: [username]
p: [password]
-------------

Active your account by clicking [activation-link]

Sonra posta komut, bu dosyayı yüklemek ve str_replace() tutucuları. Bu şekilde, e-posta mesajı ile mail script garble ve kolayca komut dokunmak zorunda kalmadan herhangi bir değişiklik koruyabilirsiniz yok. Ayrıca içine kodlama linebreaks uğraşmak zorunda kalmazsınız.

Ben kuvvetle HTML posta kullanarak vazgeçirmek. Alıcı ucunda büyük bir belirsizlik var. Kullanıcılar HTML render yapamaz ya da engelli müşterileri ile postalarına erişebilir, böylece alternatif metin (çok parçalı) ile posta göndermek zorunda kalacak. Buna ek olarak, müşterilerine HTML render büyük bir acı olduğunu.

Özellikle yeni hatları ile ilgili soru çözmek için, bunu birkaç yolu var:

1

$message = 'Thanks for signing up!
blablablah *link to confirmation*'

Satırın sonunda tek tırnak ve basit bir <enter> kullanın.

2

$message = "Thanks for signing up!\n\r
blablablah *link to confirmation*"

Çift tırnak, \ n \ r kullan (bu yeni bir çizgi oluşturur - aslında bir line feed and a carriage return) ve basit bir <enter> satırın sonunda (bu kendi okunabilmesi için saf olduğunu.

3

heredoc nowk anlaşılacağı gibi kullanım.