Senden Sie eine E-Mail und wählen Sie genau aus, wie die Kopfzeilen angezeigt werden

362
WNG

Ich habe ein unberechenbares Verhalten von Yahoo! gefunden. Mail über die Interpretation von Betreffzeilen, wenn der Header in base64 codiert ist und mehr als 2 Zeilen enthält, zum Beispiel:

Subject: =?UTF-8?B?4pyIIEFvIFN1bCBkYSBBbcOpcmljYSDimIUgVGFyaWZhcyBFeGNs?= =?UTF-8?B?dXNpdmFzIOKYhSBQYXJjZXJpYSBMQVRBTSAmIEFlcm9sw61uZWFzIEFyZ2Vu?= =?UTF-8?B?dGluYXM=?= 

Um den Fehler zu isolieren, möchte ich in der Lage sein, E-Mails mit den gewünschten Kopfzeilen an mich zu senden, dh wo ich selbst kontrollieren könnte, was in der Klartextversion der gesendeten E-Mail angezeigt wird.

Gibt es eine Möglichkeit für mich, dies zu kontrollieren?

Ich verwende mehrere Webmail-Tools, aber ich kann nicht kontrollieren, was in den Kopfzeilen angezeigt wird. Ich habe ohne Erfolg nach einer benutzerdefinierten Lösung gegoogelt.

0

1 Antwort auf die Frage

1
Asu

In PHP

Auf diese Weise können Sie wirklich viel Kontrolle haben.

Mit PHP PEAR können Sie so etwas tun:

$_SMTP = array( "host" => "ssl://smtp.gmail.com", "username" => "example@gmail.com", "password" => "password123", "port" => "465", "auth" => true );  include_once('PEAR.php'); include_once('Mail.php'); include_once('Mail/mime.php');  $mime = new Mail_mime(); $mime->_build_params['html_charset']='UTF-8'; $mime->_build_params['text_charset']='UTF-8'; $mime->_build_params['head_charset']='UTF-8'; $mime->_build_params['head_encoding']='base64';  $mime->setTXTBody("Plaintext message"); $mime->setHTMLBody("<b>HTML message</b>");  $hdrs = array( 'From' => '"Me" <example@gmail.com>', 'Subject' => "Test message", 'To' => '"Example" <example@gmail.com>' );  $body = $mime->get(); $headers = $mime->headers($hdrs);  $mail =& Mail::factory('smtp', $_SMTP);  $result = $mail->send('"Example" <example@gmail.com>', $headers, $body);  print_r($result); 

In der Tat können Sie sogar print_r($headers);einen Eindruck davon bekommen, bevor Sie versenden. Es gibt mehr Optionen, um daran zu basteln. Vielleicht möchten Sie dies untersuchen.

In Python

Sie können dies auch in Python tun, indem Sie die Basisbibliotheken email und smtplib wie hier beschrieben verwenden

Die Hauptidee besteht darin, die Kopfzeile festzulegen, und Sie können den Wert in Nur-Text festlegen, indem Sie Folgendes verwenden:

msg = MIMEText("text of the mail",'plain') msg['Subject'] = "=?utf-8?b?Y2Fmw6k=?=" 

oder um aus einem Text ein passendes Format zu erzeugen:

msg = MIMEText("text of the mail",'plain') msg['Subject'] = Header("café","utf8") 
Nun, ich kenne PHP nicht, aber es ist eine gute Gelegenheit, heute etwas Neues zu lernen ... Halten Sie meine Birne, ich gehe rein! Ich lass es dich wissen wenn ich es schaffe :) WNG vor 7 Jahren 0
Klar, lass mich wissen, wie es geht. Wenn Sie sich damit nicht auskennen, können Sie wahrscheinlich von einem XAMP- (Windows) oder LAMP-Paket (Linux) profitieren, das den Webserver, PHP (höchstwahrscheinlich mit bereits installiertem PEAR), MySQL und alles, was Sie zum Erstellen benötigen, umfasst oben diskutierte Websites oder Forschungstools:) Viel Glück! Asu vor 7 Jahren 1
OK, ich hatte Angst vor PHP und habe Ihre Lösung in Python mit der E-Mail-Bibliothek implementiert. Es hat perfekt funktioniert. Was muss ich jetzt tun: Fügen Sie Ihrer Python-Lösung ein Snippet hinzu und akzeptieren Sie es dann? WNG vor 7 Jahren 1
Ja, ich denke das hört sich gut an :) Asu vor 7 Jahren 0