tag:forum.selfhtml.org,2005:/self Mail an mehrere Adressen verschicken – SELFHTML-Forum 2021-09-14T17:06:15Z https://forum.selfhtml.org/self/2021/sep/14/mail-an-mehrere-adressen-verschicken/1791589#m1791589 Martl 2021-09-14T14:25:49Z 2021-09-14T14:25:49Z Mail an mehrere Adressen verschicken <p>Hallo Forum,</p> <p>dieser Scriptausschnitt unter PHP 7.x auf einem Apache 2.x (genauer habe ich es momentan nicht)</p> <pre><code class="block">... $mailSubject = "Subject"; $mailMessage = "Text"; $mailHeaders = "Content-Type: text/plain; charset=utf-8"; for($i = 0; $i < count($mailingList); $i++){ $mailTo = $mailingList[$i]; mail($mailTo, $mailSubject, $mailMessage, $mailHeaders); } ... </code></pre> <p>soll eine Mail an die Empfänger aus <code>$mailingList</code> verschicken, was auch geschieht. Bei der Überprüfung des Ergebnisses habe ich aber festgestellt, daß alle Zieladressen in jeder Mail unter "To:" auftauchen. Sieht dann etwa so aus:</p> <pre><code class="block">To: adresse_1@example.com adresse_2@example.com adresse_3@example.com ... </code></pre> <p>Ich hatte angenommen, daß für jeden Schleifendurchgang eine Mail mit jeweils einer Adresse erzeugt wird.</p> <p>Kann mir jemand erklären, woran das liegt bzw. wo ich ansetzen müsste, um das Ziel "Eine Mail, eine Adresse" zu erreichen?</p> <p>Grüße, Martl</p> https://forum.selfhtml.org/self/2021/sep/14/mail-an-mehrere-adressen-verschicken/1791590#m1791590 Auge 2021-09-14T14:35:46Z 2021-09-14T14:35:46Z Mail an mehrere Adressen verschicken <p>Hallo</p> <blockquote> <pre><code class="block language-php"><span class="token operator">...</span> <span class="token variable">$mailSubject</span> <span class="token operator">=</span> <span class="token string double-quoted-string">"Subject"</span><span class="token punctuation">;</span> <span class="token variable">$mailMessage</span> <span class="token operator">=</span> <span class="token string double-quoted-string">"Text"</span><span class="token punctuation">;</span> <span class="token variable">$mailHeaders</span> <span class="token operator">=</span> <span class="token string double-quoted-string">"Content-Type: text/plain; charset=utf-8"</span><span class="token punctuation">;</span> <span class="token keyword">for</span><span class="token punctuation">(</span><span class="token variable">$i</span> <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span> <span class="token variable">$i</span> <span class="token operator"><</span> <span class="token function">count</span><span class="token punctuation">(</span><span class="token variable">$mailingList</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$i</span><span class="token operator">++</span><span class="token punctuation">)</span><span class="token punctuation">{</span> <span class="token variable">$mailTo</span> <span class="token operator">=</span> <span class="token variable">$mailingList</span><span class="token punctuation">[</span><span class="token variable">$i</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token function">mail</span><span class="token punctuation">(</span><span class="token variable">$mailTo</span><span class="token punctuation">,</span> <span class="token variable">$mailSubject</span><span class="token punctuation">,</span> <span class="token variable">$mailMessage</span><span class="token punctuation">,</span> <span class="token variable">$mailHeaders</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token operator">...</span> </code></pre> <p>soll eine Mail an die Empfänger aus <code>$mailingList</code> verschicken, was auch geschieht. Bei der Überprüfung des Ergebnisses habe ich aber festgestellt, daß alle Zieladressen in jeder Mail unter "To:" auftauchen. Sieht dann etwa so aus:</p> <pre><code class="block">To: adresse_1@example.com adresse_2@example.com adresse_3@example.com ... </code></pre> </blockquote> <p>Wenn da alle Adressen aufgelistet werden, musst du davon ausgehen, dass alle diese Adressen in <code>$mailTo</code> stehen, musst du davon ausgehen, dass alle diese Adressen in <code>$mailingList[$i]</code> stehen. Ansonsten sieht der Code für mich – abseits vom hier und da bestehenden Optimierungspotential – unverdächtig aus.</p> <p>Hast du dir mal den Inhalt von <code>$mailingList[$i]</code> ausgeben lassen? Nur, um dich zu vergewissern, dass dort das enthalten ist, was du erwartest. Zum Beispiel so:</p> <pre><code class="block language-php"><span class="token keyword">echo</span> <span class="token string single-quoted-string">'<pre>'</span><span class="token punctuation">;</span> <span class="token keyword">for</span><span class="token punctuation">(</span><span class="token variable">$i</span> <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span> <span class="token variable">$i</span> <span class="token operator"><</span> <span class="token function">count</span><span class="token punctuation">(</span><span class="token variable">$mailingList</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$i</span><span class="token operator">++</span><span class="token punctuation">)</span><span class="token punctuation">{</span> <span class="token keyword">echo</span> <span class="token function">htmlspecialchars</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'Zeile #'</span><span class="token operator">.</span> <span class="token variable">$i</span> <span class="token operator">.</span><span class="token string single-quoted-string">': '</span><span class="token operator">.</span> <span class="token variable">$mailingList</span><span class="token punctuation">[</span><span class="token variable">$i</span><span class="token punctuation">]</span> <span class="token operator">.</span><span class="token string double-quoted-string">"\n"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//$mailTo = $mailingList[$i];</span> <span class="token comment">//mail($mailTo, $mailSubject, $mailMessage, $mailHeaders);</span> <span class="token punctuation">}</span> <span class="token keyword">echo</span> <span class="token string single-quoted-string">'</pre>'</span><span class="token punctuation">;</span> </code></pre> <blockquote> <p>Ich hatte angenommen, daß für jeden Schleifendurchgang eine Mail mit jeweils einer Adresse erzeugt wird.</p> </blockquote> <p>Das sollte eigentlich so sein, falls <code>$mailingList</code> ein eindimensionales Array mit E-Mail-Adressen ist.</p> <p>Tschö, Auge</p> <div class="signature">-- <br> 200 ist das neue 35. </div> https://forum.selfhtml.org/self/2021/sep/14/mail-an-mehrere-adressen-verschicken/1791599#m1791599 klawischnigg 2021-09-14T17:06:15Z 2021-09-14T17:06:15Z Mail an mehrere Adressen verschicken <p>Hi there,</p> <blockquote> <p>dieser Scriptausschnitt unter PHP 7.x auf einem Apache 2.x (genauer habe ich es momentan nicht)</p> <pre><code class="block">... $mailSubject = "Subject"; $mailMessage = "Text"; $mailHeaders = "Content-Type: text/plain; charset=utf-8"; for($i = 0; $i < count($mailingList); $i++){ $mailTo = $mailingList[$i]; mail($mailTo, $mailSubject, $mailMessage, $mailHeaders); } ... </code></pre> <p>soll eine Mail an die Empfänger aus <code>$mailingList</code> verschicken, was auch geschieht.</p> </blockquote> <p>Hat mit Deinem Problem nicht ursächlich zu tun aber - Du solltest in die for-Schleife eine Pause einbauen - viele Mailserver mögen es überhaupt nicht, wenn sie mit Mailanforderungen ohne Zeitverzögerung bombardiert werden. Hängt natürlich auch von der Menge der Mails ab, bei ein paar zig-Mails ist es vermutlich eher egal, aber wenn's mehr werden, würd' ich jeweils so ca. eine halbe Sekunde warten...</p> https://forum.selfhtml.org/self/2021/sep/14/mail-an-mehrere-adressen-verschicken/1791591#m1791591 Martl 2021-09-14T14:38:59Z 2021-09-14T14:38:59Z Mail an mehrere Adressen verschicken <p>Hallo Auge,</p> <p>guter Hinweis, werde dem mal nachgehen. Danke!</p> <p>Grüße, Martl</p> https://forum.selfhtml.org/self/2021/sep/14/mail-an-mehrere-adressen-verschicken/1791593#m1791593 Martl 2021-09-14T15:15:12Z 2021-09-14T15:15:12Z Mail an mehrere Adressen verschicken <p>Hallo Auge,</p> <p>ja, das wars. Nochmals danke.</p> <p>Grüße, Martl</p>