Problem ist, dass Google Mail automatisch einen Hyperlink für alle Website-URLs und E-Mail-Adressen erstellt. Ich möchte keinen Link erstellen. Meine
SmtpClient MailClient = new SmtpClient();
MailMessage NetMail = new MailMessage();
msg ="I do not want www.google.com as a link at recipient end. <br/>";
msg += "I want my email addrress [email protected] as html without a link";
NetworkCredential cr = new NetworkCredential("########", "###########");
NetMail.From = new MailAddress("########@m####.###", "######");
NetMail.To.Add(new MailAddress("[email protected]"));
NetMail.Subject = "Test Mail";
NetMail.IsBodyHtml = true;
NetMail.Body = msg;
MailClient.Host = "xyz.com";
MailClient.Port = 25;
MailClient.EnableSsl = false;
MailClient.Credentials = cr;
MailClient.Send(NetMail);
Irgendeine Lösungsmöglichkeit?
Es gibt keine Möglichkeit, die Erstellung von URLs zu beenden, da der E-Mail-Anbieter automatisch überprüft, ob der Text eine gültige URL ist.
Der einzige Weg, dies zu überwinden, besteht darin, den Parser zu täuschen. Setzen Sie einfach Leerzeichen, HTML-Tags, was auch immer so ist, dass der Parser sich nicht identifizieren kann (Banging SO :)): -
http://foolishedsiteparser.com
_http: //www.parsersmashed.com
[email protected]
und viele andere Möglichkeiten ...;)
[Zusammengestellt von: -
http:<span>//foolishedsiteparser.com</span> <br/>
_http://www.parsersmashed.com <br/>
noonesemail<x>@</x>linkdead.com <br/>
]
Ich konnte dieses Problem umgehen, indem ich <a style="color: #000000">link text</a>
hinzufügte (beachten Sie, dass es keine href
gibt).
Ich habe nicht versucht, Attribute außer style
zu verwenden, aber ich könnte mir vorstellen, dass Sie dies tun könnten. Das von mir verwendete E-Mail-System (Blackbaud NetCommunity) entfernt ein einfaches <a>
-Tag, daher musste ich mindestens ein Attribut haben.
Ich hatte ein ähnliches Problem und habe herausgefunden, ob Sie E-Mails wie diese verwenden.
<a rel="nofollow" style='text-decoration:none; color:#333'>[email protected]</a>
e-Mail-Anbieter folgen E-Mails nicht als Link.
Hoffe das hilft.
Nach einem Stichwort aus perilbrain's Antwort habe ich den folgenden Regex implementiert, den ich dafür verwende:
var unlink = function (val) {
return val.replace(/([@\.:])/g, '<span>$1</span>');
};
Beachten Sie, dass diese Funktion bei den übergebenen Elementen global ersetzt wird. Dies wäre wahrscheinlich zu aggressiv für natürliche Textblöcke wie im Beispiel des OP. Die Vorlagen werden jedoch häufig parametrisiert. Dies funktioniert hervorragend, wenn Sie einfach eine URL oder E-Mail übergeben ( Ich habe es tatsächlich als Template-Helper-Funktion implementiert, damit es genau das tut).
Die Funktion konvertiert die folgenden Eingaben:
[email protected]
http://johndoe.com
das sehr gut finden:
john<span>.</span>doe<span>@</span>gmail<span>.</span>com
http<span>:</span>//johndoe<span>.</span>com
Beachten Sie, dass ich ein falsches kurzes Tag wie <x>
wie in der akzeptierten Antwort ausprobiert habe und festgestellt habe, dass GMail es "intelligent" durch <u>
-Tags ersetzt hat. Ich nehme an, dass es sich um ein Feature handelt, das jedoch nicht wünschenswert war. In meinen Tests verhindern <span>
-Tags das Verknüpfen ohne visuelle Nebeneffekte.
Geschafft!
Dies verhindert nicht, dass E-Mails in Links umgewandelt werden. Sie können jedoch die Schriftfarbe festlegen und die Unterstreichung dieses Links entfernen.
Es funktioniert in allen E-Mail-Clients, die ich auf litmus.com getestet habe - einschließlich Outlook 2010, 2013, 2016 (auch unter Windows), Outlook.com, iPhone 6s, iPad, Google Mail-Weboberfläche und Apple Mail 8, 9
Variante 1: Ein Link, der beim Anklicken nicht reagiert
<a href="#" style="text-decoration:none; color:#000">[email protected]</a>
Variante 2: Ein Mailto-Link. Arbeitet in fast alle Kunden Outlook.com gestaltet es jedoch blau und unterstrichen.
<a href="mailto:[email protected]" style="text-decoration:none; color:#000">[email protected]</a>
Ich habe eine nicht erwähnte Lösung für Text-E-Mails: Verwenden Sie ähnliche Unicode-Zeichen. Zum Beispiel ein Punktanführer (U + 2024) anstelle von Punkt. Vergleichen Sie, wie Běhej.com und Běhej․com aussehen (der erste ist mit einem normalen Punkt).
Da jetzt das einfache Umbrechen von <span>
nicht funktioniert, schlage ich vor, @
durch seine HTML-Entity-Alternative zu ersetzen
function disable_email_link($email) {
//encoder https://mothereff.in/html-entities
$email = str_replace('@', '@', $email);
$email = str_replace('.', '<span>.</span>', $email);
return $email;
}
Wenn Ihre E-Mail Telefonnummern enthält, können Sie sie mit der disable_tel_link
-Funktion deaktivieren:
function wrap_span_letters($string) {
$res = "";
$length = strlen($string);
for ($i = 0; $i < $length; $i++) {
$res .= "<span>$string[$i]</span>";
}
return $res;
}
function disable_tel_link($phone) {
return wrap_span_letters($phone);
}
Keine der hier aufgeführten Lösungen scheint mehr zu funktionieren. Ich habe ein wenig mit der Idee von nicht druckbaren Unicode-Zeichen experimentiert und fand diese Reihenfolge:
<span>foo‌.‌bar‌.‌com</span>
Dabei ist der ZERO WIDTH NON-JOINER-Charakter.
Angenommen, Ihre Anzeige-URL lautet "abcdUrl.com" Um zu verhindern, dass Google Mail als Link angezeigt wird, packen Sie es in ein Ankertag
<a href="" style="text-decoration:none;color:#333;">
abcdUrl.com
</a>
Dies funktioniert gut in Google Mail.
Ich hatte einen Punkt im Titel meiner Bestätigungsnachricht . Inspiriert von @perilbrain, drehte ich mein Problem so um
domain.com => domain<span>.</span>
php
$titre = str_replace(".", "<span>.</span>", $titre);
einfach!
ich hatte das gleiche Problem und so nach ein paar Minuten herausgefunden, wie man es beheben kann.
wenn Sie das Element direkt anvisieren, funktioniert es nicht, da Google Mail dort automatisch ein "a" -Tag hinzufügt. Sie müssen also einen Schritt weitergehen und eine Klasse für das "a" -Tag deklarieren. In meinem Fall befand sich die E-Mail in einem "" Tag, mit dem ich leichter arbeiten konnte. Also habe ich eine Klasse so erstellt:
.email_contact a {color:#ffffff!important; text-decoration: none!important;}
es gibt kein "a" -Tag in meinem Code, aber da Google Mail es automatisch hinzufügt, sollten Sie es dort abfangen. Jetzt müssen Sie nur noch diese Klasse verwenden, wo immer Sie Ihre E-Mail hinzufügen, wie "span" oder "div" und "boom"! Fest.
Obwohl dies ein alter Faden ist, möchte ich Leuten helfen, die vielleicht hierher kommen. Ich habe festgestellt, dass das Hinzufügen eines Bereichs innerhalb des Links dazu führt, dass Google es nicht als Link sieht (siehe unten):
<a href="https://www.link.dk" style="text-decoration: none !important; color: #878787 !important;">www.<span></span>link.dk</a>