2016-06-04 11 views
0

Ich benutze PHP Curl() -Funktion, um von Server A an den Mailserver B zu verbinden, um Mail zu senden.phpmailer sendet Mail ohne Betreff und ohne Zeilenumbrüche

$body = "body\n\nmore body\nmore body\n\nmore body\n\n"; 


$post = [ 
    'sendera' => $sender, 
    'sender_name' => $sender_name, 
    'subject' => $subject, 
    'body' => $body, 
    'recipient' => $email, 
    'recipient_name' => $name, 
    'replyto' => $replyto 
]; 

$ch = curl_init('http://example-mailserver.com'); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $post); 

curl_setopt($ch,CURLOPT_CONNECTTIMEOUT ,3); 
curl_setopt($ch,CURLOPT_TIMEOUT, 10); 
$response = curl_exec($ch); 
curl_close($ch); 

Mail wird erfolgreich gesendet, aber es gibt 2 Probleme.

Problem N 1

Post ankommen, ohne Zeilenumbrüche, also alle \ n sind nur Klartext. Nie hatte dieses Problem das Senden von E-Mail von demselben Server. Jetzt, wenn ich mit curl() senden, erscheint dieses Problem. Mail-Server haben php7 installiert. Sollte dies ein php7 oder curl() Problem sein?

Problem N 2

Post ankommen ohne Betreffzeile jedoch $ subject Variable existiert, wenn Skript ausgeführt wird, ich diese Option aktiviert durch eine einfachere Mail zu senden, bevor PHPMailer Aufruf() Funktion.

Also, warum PHPMailer ignoriert $ Thema? Ich hatte dieses Problem nie auf dem Server A mit PHP5.

mail('[email protected]', 'check if subject exists', $subject); 

Die Mail oben kommen mit $ Betreff-Variable. Aber die Post, die direkt danach mit phpmailer geschickt wird, hat keine Betreffzeile.

$mail=new PHPMailer(); 
$mail->IsMail(); 
$mail->WordWrap = 0; 
$mail->SingleTo = true; 
$mail->IsHTML(false); 
$mail->CharSet = "utf-8"; 

$mail->From  = $sender; 
$mail->FromName = $sender_name; 
$mail->Subject = $subject; 
$mail->Body  = $body; 

$mail->AddAddress($recipient,$recipient_name); 
$mail->AddReplyTo(#replyt,"No-Reply"); 
+0

$ mail-> Betreff = "". $ Themen.""; // probiere das bitte –

+0

das gleiche Problem :( – user1406271

+0

Haben Sie versucht '
' statt –

Antwort

0

Problem-Nr. 1 könnte auf die von Ihnen verwendeten Zeilenumbrüche zurückzuführen sein. A \n ist nur eines von zwei Elementen einer vollständigen Zeilenumbruch, es ist eine "Newline". Einige Mail-Systeme/Server erwarten einen vollen Zeilenumbruch, der \r\n ist, der \r ist in diesem Fall ein "Wagenrücklauf", das zweite Element einer vollen Zeilenumbruch.

Problem-Nr. 2 ... zuerst aus: was ist in deiner $subject?

+0

$ Thema ist: Bestätigen Sie die Frage der Zusammenarbeit – user1406271

+0

\ r \ n hilft nicht, das gleiche Problem - Klartext – user1406271

+0

Manchmal scheitert wenn Sie verwenden Akzente "áéíóú" oder Sonderzeichen wie "ñ". Abhängig von der Maschine, Config und PHP Config. – Wiliam

0

Betreff Problem

ich die neueste Version von phpmailer installiert und ich habe nicht Gegenstand.

Zeilenumbrüche

Ich hatte Körper $ in Apostrophe:

body = 'this is body\r\n\r\nmore body'; 

Ich änderte dies:

$body = "this is body\r\n\r\nmore body"; 

Und jetzt ist alles in Ordnung.