E-Mail (German / Deutsch)

by RaHa, Thursday, November 24, 2016, 12:30 (2708 days ago)
edited by RaHa, Thursday, November 24, 2016, 12:55

[image]

Hallo Zusammen,

es soll der eigene Mail-Client genutzt werden, deshalb möchte ich, dass hier bei dem Mail-Icon folgender Link steht: href="mailto:mailadresse".

Wo muss ich das modifizieren. Ich hab lange gesucht, aber noch keinen Ansatz gefunden, wo ich anfangen muss. Für eine Hilfe bin ich dankbar.


Außerdem möchte ich, dass das Forum kleinerlei E-Mails mit Benachrichtungen, Inhalten aus den Themen, Passwörtern usw. verschickt. Wo bzw. wie kann ich dies deaktivieren?

Danke!!

E-Mail

by RaHa, Thursday, November 24, 2016, 19:14 (2708 days ago) @ RaHa

es soll der eigene Mail-Client genutzt werden, deshalb möchte ich, dass hier bei dem Mail-Icon folgender Link steht: href="mailto:mailadresse".

Ich will mir ja gerne jetzt selbst helfen, verstehe aber nicht wieso im Template user.inc.tpl die Variable $row.user_email den Wert von $row.email_contact hat.

<td><span class="small">{if $row.user_email}<a href="mailto:{$row.user_email}" title="{#mailto_user#|replace:"[user]":$row.user_name}"><img src="{$THEMES_DIR}/{$theme}/images/email.png" alt="{#email#}" width="13" height="10" /></a>{else}&nbsp;{/if}</span></td>
{*<td><span class="small">{if $row.postings>0}<a

In welchen Script und wo wird $row.user_email auf den Wert von $row.email_contact oder auf 1 gesetzt?

Danke!!

Avatar

E-Mail-Adresse an ein Template übergeben

by Auge ⌂, Friday, November 25, 2016, 14:36 (2707 days ago) @ RaHa

Hallo

es soll der eigene Mail-Client genutzt werden, deshalb möchte ich, dass hier bei dem Mail-Icon folgender Link steht: href="mailto:mailadresse".

Vorausgeschickt sei, dass es eine bewusste Entscheidung von Alex war, die Emailadressen den Forenbesuchern nicht zugänglich zu machen. Deshalb wird an allen Stellen, an denen sich Benutzer als per E-Mail kontaktierbar zeigen, der Link zum Kontaktformular und nicht die Emailadresse angeboten.

Ich will mir ja gerne jetzt selbst helfen, verstehe aber nicht wieso im Template user.inc.tpl die Variable $row.user_email den Wert von $row.email_contact hat.

Ich habe mir das Template und das das Template aufrufende PHP-Skript noch nicht genau angeschaut, bin mir aber sicher, dass die Emailadresse aus den oben genannten Gründen nicht per Smarty an das Template übergeben wird. Ich werde am WE nachschauen.

Tschö, Auge

--
Trenne niemals Müll, denn er hat nur eine Silbe!

E-Mail-Adresse an ein Template übergeben

by RaHa, Friday, December 09, 2016, 09:38 (2693 days ago) @ Auge

Ich habe mir das Template und das das Template aufrufende PHP-Skript noch nicht genau angeschaut, bin mir aber sicher, dass die Emailadresse aus den oben genannten Gründen nicht per Smarty an das Template übergeben wird. Ich werde am WE nachschauen.

Hallo Auge,
hast Du scho mal nachgeschaut?

Voraussetzung, dass der E-Mail-Versand aus dem Forum an alle E-Mail-Adressen funktioniert ist die richtige Konfiguration des Postfix und der DNS-Records auf dem jeweiligen Host. Ist das nicht der Fall, werden die E-Mails bei allen xxxx@gmail.com Adressen von Google abgelehnt wegen nicht eingehaltener Richtlinien.

Alle in meinem Forum vorhandenen xxxx@gmail.com Adressen funktionieren jedoch ohne großen Aufwand aus den E-Mail-Programmen der Nutzer. Deshalb wollte ich die Lösung mit mailto::

Danke!!

Avatar

E-Mail-Adresse an ein Template übergeben

by Auge ⌂, Friday, December 09, 2016, 13:49 (2693 days ago) @ RaHa

Hallo

Ich habe mir das Template und das das Template aufrufende PHP-Skript noch nicht genau angeschaut, bin mir aber sicher, dass die Emailadresse aus den oben genannten Gründen nicht per Smarty an das Template übergeben wird. Ich werde am WE nachschauen.

Hallo Auge,
hast Du scho mal nachgeschaut?

Ahem, natürlich nicht. Sorry.

Voraussetzung, dass der E-Mail-Versand aus dem Forum an alle E-Mail-Adressen funktioniert ist die richtige Konfiguration des Postfix und der DNS-Records auf dem jeweiligen Host. Ist das nicht der Fall, werden die E-Mails bei allen xxxx@gmail.com Adressen von Google abgelehnt wegen nicht eingehaltener Richtlinien.

Herrje, die haben 'nen Knall. Jetzt mal unabhängig von der dir vorschwebenden Lösung. Das Skript spricht die PHP-Funktion mail() an, was wiederum bedeutet, dass PHP und damit das Skript nichts mit den Details des Mailversands an sich zu tun haben. Die Funktion macht nämlich nichts anderes, als die Bestandteile der Nachricht an ein Emailrelay (Windows) bzw. einen Emailserver (Unixoide) zu übergeben und ihn mit dem Versand zu beauftragen. Dort eve´ntuell vorhandene Fehlkonfigurationen spielen für das Skript keine Rolle. Davon weiß es nichts.

Wenn also Google Emails wegen der Nichteinhaltung seiner Regeln abweist, hat irgendwer anders die fraglichen Regeln nicht eingehalten. Die erste mögliche Instanz ist dein Hoster/Mail-Provider, der die Emails schlussendlich versendet. Danach kommen weitere Mail-Server, über die die Nachrichten weitergeleitet werden und bei denen es ebenfalls zu Veränderungend er Nachrichten kommen kann.

Alle in meinem Forum vorhandenen xxxx@gmail.com Adressen funktionieren jedoch ohne großen Aufwand aus den E-Mail-Programmen der Nutzer. Deshalb wollte ich die Lösung mit mailto::

Ok, in einem streg begrenzten Nutzerkreis, um den es sich laut deinen Ausführungen in einem anderen Beitrag handelt und in dem die Beteiligten dem zustimmen, ist das wohl kein Problem.

Ich weiß nicht, wie weit du mit den Umbauten gehen willst. Es gibt mehrere Stellen, an denen die Anzeige des Links zum Kontaktformular mit den Daten eines registrierten Benutzers möglich ist.

- Benutzerliste (alle Benutzer)
- Benutzerseite (ein Benutzer)
- Beiträge (im Kopf des Postings)

Die hier vorgestellten Änderungen sind ungetestet. Bevor du loslegst, erstelle bitte Backups der fraglichen Dateien, ändere die Stellen eine nach der Anderen und teste nach jedem Schritt die Funktion.

Erstelle dir dazu bitte auch ein eigenes Template (falls du das nicht schon getan hast). Bei einem späteren Update der Software wird das Standardtemplate (das in templates/default) in vielen Fällen überschrieben, womit deine Änderungen weg wären. Mit einem eigenen template kannst du deine Änderungen hingegen auf den neuen Stand übertragen und dein Theme wieder aktivieren.

Die Benutzerliste

Es müssen zwei Stellen geändert werden. Die angegebenen Zeilennummern beziehen sich auf den aktuellen Entwicklungsstand und können von denen der tatsächlich installierten Version um (höchstens ein paar!) Zeilen abweichen.

1. includes/user.inc.php, Zeile #98

// vorher
    if($row['email_contact']==1) $userdata[$i]['user_email'] = TRUE;
// nachher
    if($row['email_contact']==0)
        $userdata[$i]['user_email'] = FALSE;
    else
        $userdata[$i]['user_email'] = htmlspecialchars($userdata[$i]['user_email']);
 

2. themes/[themename]/subtemplates/user.inc.tpl, Zeile #43

<!-- vorher -->
<td><span class="small">{if $row.user_email}<a href="index.php?mode=contact&amp;user_id={$row.user_id}" title="{#mailto_user#|replace:"[user]":$row.user_name}"><img src="{$THEMES_DIR}/{$theme}/images/email.png" alt="{#email#}" width="13" height="10" /></a>{else}&nbsp;{/if}</span></td>
<!-- nachher -->
<td><span class="small">{if $row.user_email}<a href="mailto: {$row.user_email}" title="{#mailto_user#|replace:"[user]":$row.user_name}"><img src="{$THEMES_DIR}/{$theme}/images/email.png" alt="{#email#}" width="13" height="10" /></a>{else}&nbsp;{/if}</span></td>

Die Benutzerseite (eines Benutzers)

1. includes/user.inc.php, Zeile #201

// vorher
    if($row['email_contact']==1) $smarty->assign('user_email',TRUE);
// nachher
    if($row['email_contact']==0)
        $smarty->assign('user_email', FALSE);
    else
        $smarty->assign('user_email', htmlspecialchars($userdata[$i]['user_email']));

2. themes/[themename]/subtemplates/user_profile.inc.tpl, Zeile #17

<!-- vorher -->
<td class="d"><p class="userdata">{if $user_hp=='' && $user_email==''}-{/if}{if $user_hp!=''}<a href="{$user_hp}" title="{$user_hp}"><img src="{$THEMES_DIR}/{$theme}/images/homepage.png" alt="{#homepage#}" width="13" height="13" /></a> &nbsp;{/if}{if $user_email}<a href="index.php?mode=contact&amp;user_id={$p_user_id}" title="{#mailto_user#|replace:"[user]":$user_name}" rel="nofollow"><img src="{$THEMES_DIR}/{$theme}/images/email.png" alt="{#email#}" width="13" height="10" /></a>{/if}</p></td>
<!-- nachher -->
<td class="d"><p class="userdata">{if $user_hp=='' && $user_email==''}-{/if}{if $user_hp!=''}<a href="{$user_hp}" title="{$user_hp}"><img src="{$THEMES_DIR}/{$theme}/images/homepage.png" alt="{#homepage#}" width="13" height="13" /></a> &nbsp;{/if}{if $user_email}<a href="mailto: {$user_email}" title="{#mailto_user#|replace:"[user]":$user_name}" rel="nofollow"><img src="{$THEMES_DIR}/{$theme}/images/email.png" alt="{#email#}" width="13" height="10" /></a>{/if}</p></td>

Die Beiträge in der Einzelansicht (im Kopf des Postings)

1. includes/entry.inc.php, Zeile #271

// vorher
    if($entrydata['email']!='' && $entrydata["email_contact"]==1) $smarty->assign('email',true);
// nachher
    if($entrydata['email']!='' && $entrydata["email_contact"]==1) $smarty->assign('email', htmlspecialchars($entrydata['email']));

2. themes/[themename]/subtemplates/entry.inc.tpl, Zeilen #7 und #9

<!-- vorher -->
{assign var=email_hp value=" <a href=\"index.php?mode=contact&amp;id=$id\" rel=\"nofollow\"><img src=\"$THEMES_DIR/$theme/images/email.png\" title=\"$email_alt\" alt=\"@\" width=\"13\" height=\"10\" /></a>"}
<!-- nachher -->
{assign var=email_hp value=" <a href=\"mailto: $email\" rel=\"nofollow\"><img src=\"$THEMES_DIR/$theme/images/email.png\" title=\"$email_alt\" alt=\"@\" width=\"13\" height=\"10\" /></a>"}
<!-- in Zeile #9 entsprechend nur den zweiten Block für den Link zur Email -->

Die Beiträge in der Threadansicht (geschachtelte und lineare Ansicht, im Kopf des Postings)

1. includes/entry.inc.php, Zeile #228

// vorher
    if($data['email']!='' && $data["email_contact"]==1) $data['email'] = true;
// nachher
    if($data['email']!='' && $data["email_contact"]==1) $data['email'] = htmlspecialchars($data['email']);

2. themes/[themename]/subtemplates/thread.inc.tpl und themes/[themename]/subtemplates/thread_linear.inc.tpl, jeweils Zeilen #13 und #15

<!-- vorher -->
{assign var=email_hp value=" <a href=\"index.php?mode=contact&amp;id=$email_id\" rel=\"nofollow\"><img src=\"$THEMES_DIR/$theme/images/email.png\" title=\"$email_alt\" alt=\"@\" width=\"13\" height=\"10\" /></a>"}
<!-- nachher -->
{assign var=email_hp value=" <a href=\"mailto: $email\" rel=\"nofollow\"><img src=\"$THEMES_DIR/$theme/images/email.png\" title=\"$email_alt\" alt=\"@\" width=\"13\" height=\"10\" /></a>"}
<!-- in Zeile #15 entsprechend nur den zweiten Block für den Link zur Email -->

Tschö, Auge

--
Trenne niemals Müll, denn er hat nur eine Silbe!

E-Mail-Adresse an ein Template übergeben

by RaHa, Friday, December 09, 2016, 16:33 (2693 days ago) @ Auge

Hallo Auge,

erst mal besten Dank für die fixe ausführliche Antwort. Ich mach mich an die Arbeit. Ich habe Deinen Vorschlag mit einem eigenem Template schon umgesetzt und viele Änderungen gemacht, wie Checkbox für E-Mail-Benachrichtigung, Passwort vergessen, Themenauswahl, Upload usw. weg). Damit ich die Änderungen aber wiederfinde habe ich jeweils den gleichen Suchtext darüber gesetzt.

Ja, Google hat nen Knall. Ist IP6 aktiv und es fehlt der DNS-Record AAAA wird die Mail abgelehnt und Du bekommst eine Meldung zurück. Fehlt ein SPF Record kommt die Mail gelegentlich auch zurück. Ebenso muss ein MX Eintrag vorhanden sein.

Betriebst Du das Forum zu Hause auf Deinem Rechner via DynDNS und in der Postfix main.cf hast Du myhostname nicht gesetzt, und keine sender_canonical auf den DynDNS Hostnamen dann hast Du mit gmail.com auch Pech.

Danke!!

PS: Auch herzlichen Dank von all meinen Nutzern des Forums. Sie sind von der Einfachheit (ohne viel Schnickschnack) und Schnelligkeit sehr begeistert.

RSS Feed of thread