Mail a clearTo

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
sin
Člen | 82
+
0
-

Ahoj,
chci poslat mail z newsletteru všem registrovanym ale nechci aby videli komu to přijde. tak jsem to chtěl udělat takto:
$mail = new Mail()
nastaveni…

<?php
foreach ($array as $to){
	$mail->clearTo();
	$mail->addTo($to);
	$mail->send();
}
?>

ale neni zadna metoda clearTo nebo jsem ji aspon nenasel…

redhead
Člen | 1313
+
0
-

a co vytvářet i nový mail v tom foreachi?

sin
Člen | 82
+
0
-

je to taky moznost ale prijde mi to divné… ja to chci jenom znovu poslat ne to znovu cele renderovat a vytvaret novy objekt

Jakub Lédl
Člen | 55
+
0
-

Zkusil bych

<?php

  $mail->setHeader('To', ''); // metoda zděděná z MailMimePart

?>

Editoval Jakub Lédl (21. 1. 2010 15:26)

Ondřej Mirtes
Člen | 1536
+
0
-

A co addBcc()?

sin
Člen | 82
+
0
-

kdyz jsem si na gmailu dal skrytou kopii tak ti co byli ve skrute kopii o sobe vedeli…

Jakub Lédl
Člen | 55
+
0
-

No, někde jsem četl, že POP3 mail server (GMail ho používá jako incoming) si moc nerozumí s Bcc: hlavičkou…

Ondřej Mirtes
Člen | 1536
+
0
-

Podle mě v hlavičce přijmutého mailu nic o ostatních příjemcích z Bcc být nemůže – klidně bych to použil, pro tento účel je to navrženo. Možná na Gmailu byl kdysi nějaký bug.

sin
Člen | 82
+
0
-

asi to nakonec budu muset udelat tak jak jsem nechtel a to dar new Mail() do toho foreach protoze potrebuju menit footer kvuli odhlasni z odberu…

Jakub Lédl
Člen | 55
+
0
-

Ondřej Mirtes napsal(a):

Podle mě v hlavičce přijmutého mailu nic o ostatních příjemcích z Bcc být nemůže – klidně bych to použil, pro tento účel je to navrženo. Možná na Gmailu byl kdysi nějaký bug.

http://www.generation-nt.com/…3695061.html#…

Nejsem nijak zběhlý v mailových protokolech, ale není možné, že by GMail, převáděl při příchozím mailu vše z Bcc: do Cc:, aby předešel ztrátě Bcc mailů?

sin
Člen | 82
+
0
-

je mozne ze jsem nekde delam chybu ja a gmail to ma spravne.. muzete to nekdo taky zkusit prosim?

Majkl578
Moderator | 1364
+
0
-

Jakub Lédl napsal(a):
Nejsem nijak zběhlý v mailových protokolech, ale není možné, že by GMail, převáděl při příchozím mailu vše z Bcc: do Cc:, aby předešel ztrátě Bcc mailů?

Proč by to dělal?

Jakub Lédl
Člen | 55
+
0
-

POP3 collection from a domain-wide mailbox cannot handle
BCC or mailing list email, which is just a giant BCC. By definition, BCC
emails contain no recipient information in the headers, and the SMTP
recipient information is lost when the mail is delivered to a mailbox.
This isn't a problem for a single user, as everything that arrives in
the mailbox is his, but with multi-user POP3 there's no routing
information for a later downloader to work with.

? Samozřejmě, možná to chápu špatně. V tom případě bych byl samozřejmě vděčný za korektní vysvětlení.

iguana007
Člen | 970
+
0
-

Já kdysi řešil hromadné rozesílání emailů členům jednoho intranetu – řádově tisíce recipients. Jelikož byl každý email stejný (občas se řeší i personalizované emaily, kdy je každý email unikátní, tak toto řešení použít nejde), tak se využilo síly poštovního serveru. Už si nevzpomínám jak se to přesně řešilo, ale fungovalo to tak, že z PHP odešel v podstatě jen jeden email s polem uživatelů (myslím, že se to dávalo do Bcc:) a o zbytek se postaral poštovní server – projel to Bcc: a v každém doručeném emailu bylo jen jedno To: a ostatní neviděli komu email ještě došel …

Jestli se mi podaří najít ten skript, tak ti ho sem hodím. Ale spíše to asi bude nastavením poštovního serveru než PHP skriptem …

igi

theo
Člen | 57
+
0
-

Já tenhle problém řeším jednoduše:

<?php

$mail = new Mail;
// ... nejaka dalsi nastaveni
foreach ($adresy as $email => $jmeno) {
	$klon = clone $mail;
	$klon->addTo($email, $jmeno);
	$klon->send();
	unset($klon);
}

?>
toka
Člen | 253
+
0
-

Dělám to takto, zatím žádný problém:

$mail = new Mail();
$mail->setFrom('newsletter@domena.cz', 'Newsletter - neodpovídejte');
$mail->setSubject('Předmět');
$mail->setBody('Zpráva');
$mail->addTo('newsletter@domena.cz');

foreach($bcc as $email => $name) {
	$mail->addBcc($email, $name);
}

$mail->send();