tag:forum.selfhtml.org,2005:/selfMail an mehrere Adressen verschicken – SELFHTML-Forum2021-09-14T17:06:15Zhttps://forum.selfhtml.org/self/2021/sep/14/mail-an-mehrere-adressen-verschicken/1791589#m1791589Martl2021-09-14T14:25:49Z2021-09-14T14:25:49ZMail 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#m1791590Auge2021-09-14T14:35:46Z2021-09-14T14:35:46ZMail 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#m1791599klawischnigg2021-09-14T17:06:15Z2021-09-14T17:06:15ZMail 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#m1791591Martl2021-09-14T14:38:59Z2021-09-14T14:38:59ZMail 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#m1791593Martl2021-09-14T15:15:12Z2021-09-14T15:15:12ZMail an mehrere Adressen verschicken<p>Hallo Auge,</p>
<p>ja, das wars. Nochmals danke.</p>
<p>Grüße, Martl</p>