我最近更新了我們古老的郵件功能PHPMailer。一切正常,但現在我遇到了BCC問題。當我添加一個或多個與不會忽略PHPMailer BCC破壞格式
$mail->AddBCC($arr["bcc"]);
電子郵件格式被破壞。電子郵件將是這樣的:
添加自定義標題doesn't更好地工作,因爲當時我得到的錯誤
Could not instantiate mail function.
BCC將正常工作,如果它也不會轉回去銷燬電子郵件的格式。
編輯:
這是發送電子郵件的整個功能。
$adressen=mail_get_adressen_name();
if(!isset($arr["send_to"]))
{
return array("fehler"=>"Kein Empfänger angegeben");
}
if(!isset($arr["subject"]))
{
$arr["subject"]="";
}
if(!isset($arr["from"]))
{
return array("fehler"=>"Kein Absender angegeben");
}
if(!isset($arr["disposition"]))
{
$arr["disposition"]=false;
}
if(!isset($arr["message"]))
{
$arr["message"]="";
}
if(!isset($arr["message_nohtml"]) or $arr["message_nohtml"]=="")
{
$arr["message_nohtml"]=strip_tags(str_ireplace(array("<br />","<br>","<br/>","<li>"), "\r\n", $arr["message"]));
}
if(!isset($arr["cc"]))
{
$arr["cc"]="";
}
else
{
if(trim($arr["cc"])!="")
{
if(!stristr($arr["cc"],"@") && strlen($arr["cc"])<4)
{
$arr["cc"].="@.......";
}
}
}
if(!isset($arr["bcc"]))
{
$arr["bcc"]="";
}
else
{
if(trim($arr["bcc"])!="")
{
if(!stristr($arr["bcc"],"@") && strlen($arr["bcc"])<4)
{
$arr["bcc"].="@......";
}
}
}
if(!stristr($arr["send_to"],"@") && strlen($arr["send_to"])<4)
{
$arr["send_to"].="@.......";
}
if(!stristr($arr["from"],"@") && strlen($arr["from"])<4)
{
$arr["from"].="@.........";
}
$anhang=cache_get(HR_USER,$window,"MAIL_ANHANG",$arr);
$arr["message"]=convert_text_to_utf8($arr["message"]);
$arr["message_nohtml"]=convert_text_to_utf8($arr["message_nohtml"]);
$arr["subject"]=convert_text_to_utf8($arr["subject"]);
$arr["message"]=iconv("UTF-8","Windows-1252",$arr["message"]);
$arr["message_nohtml"]=iconv("UTF-8","Windows-1252",$arr["message_nohtml"]);
$arr["subject"]=iconv("UTF-8","Windows-1252",$arr["subject"]);
$mail = new PHPMailer;
if(isset($adressen[strtolower($arr["from"])]))
{
$mail->setFrom($arr["from"],iconv("UTF-8","Windows-1252",convert_text_to_utf8($adressen[strtolower($arr["from"])])));
}
else
{
$mail->setFrom($arr["from"]);
}
if(stristr($arr["send_to"],","))
{
$arr2=explode(",",$arr["send_to"]);
foreach($arr2 as $val)
{
if(isset($adressen[strtolower($val)]))
{
$mail->addAddress($val,iconv("UTF-8","Windows-1252",convert_text_to_utf8($adressen[strtolower($val)])));
}
else
{
$mail->addAddress($val);
}
}
}
else
{
if(isset($adressen[strtolower($arr["send_to"])]))
{
$mail->addAddress($arr["send_to"],iconv("UTF-8","Windows-1252",convert_text_to_utf8($adressen[strtolower($arr["send_to"])])));
}
else
{
$mail->addAddress($arr["send_to"]);
}
}
if($arr["cc"]!="")
{
if(stristr($arr["cc"],","))
{
$arr2=explode(",",$arr["cc"]);
foreach($arr2 as $val)
{
if(isset($adressen[strtolower($val)]))
{
$mail->AddCC($val,iconv("UTF-8","Windows-1252",convert_text_to_utf8($adressen[strtolower($val)])));
}
else
{
$mail->AddCC($val);
}
}
}
else
{
if(isset($adressen[strtolower($arr["cc"])]))
{
$mail->AddCC($arr["cc"],iconv("UTF-8","Windows-1252",convert_text_to_utf8($adressen[strtolower($arr["cc"])])));
}
else
{
$mail->AddCC($arr["cc"]);
}
}
}
if(trim($arr["bcc"])!="" and HR_USER=="add")
{
$mail->AddBCC($arr["bcc"]);
}
if(isset($adressen[strtolower($arr["from"])]))
{
$mail->addReplyTo($arr["from"],iconv("UTF-8","Windows-1252",convert_text_to_utf8($adressen[strtolower($arr["from"])])));
}
else
{
$mail->addReplyTo($arr["from"]);
}
$mail->isHTML(true);
$mail->Subject = $arr["subject"];
$mail->Body = $arr["message"];
$mail->AltBody = $arr["message_nohtml"];
if($arr["disposition"])
{
$mail->ConfirmReadingTo = $arr["from"];
}
if(is_array($anhang))
{
foreach($anhang as $val)
{
$mail->addAttachment($val["pfad"],$val["name"]);
}
}
if($mail->send())
{
return array("fehler"=>"");
}
else
{
err($mail->ErrorInfo);
return array("fehler"=>"Mail versand fehlgeschlagen. Bitte melden Sie sich bei der EDV.<br>".$mail->ErrorInfo);
}
當我發送電子郵件,而不BCC它看起來像這樣(我不得不刪除一些文本):
Für Sie wurde ein Vorgang zu Auftrag 11EDV erstellt.
Vorgang öffnen
Kategorie:
EDV Entwicklung
Vorgangs-Bemerkung:
Gibt es eine Möglichkeit, eine E-Mail mit einer Auftragsbestätigung als Anhang direkt im HIS als Auftragsbestätigung hochzuladen?
Momentan müssen wir die PDF ja auf dem PC zwischenspeichern und dann im HIS als Event Anhang hochladen.
letzte Event-Bemerkung von hoj:
Anregung von ....some name....
.......some footer.....
當我添加一個或多個BCC不會忽略同一個電子郵件看起來是這樣的:
Planung (intern) (EDV Entwicklung) Dokumentnummer: 11EDV - 75, BVNR: 71122
.....my email adress......
27.04.2017 11:24
An: .....my email adress......,
This is a multi-part message in MIME format.
--b1_49abaa950e1203ed180ed1d5471145f7
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Für Sie wurde ein Vorgang zu Auftrag 11EDV erstellt.
Vorgang öffnen
Kategorie:
EDV Entwicklung
Vorgangs-Bemerkung:
Gibt es eine Möglichkeit, eine E-Mail mit einer Auftragsbestätigung als Anhang direkt im HIS als Auftragsbestätigung hochzuladen?
Momentan müssen wir die PDF ja auf dem PC zwischenspeichern und dann im HIS als Event Anhang hochladen.
letzte Event-Bemerkung von hoj:
Anregung von ....some name....
......footer.......
--b1_49abaa950e1203ed180ed1d5471145f7
Content-Type: text/html; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Für Sie wurde ein Vorgang zu Auftrag 11EDV erstellt.<br> <b>Vorgang öffnen</b></a><br><br>Kategorie:<br>EDV Entwicklung<br><br>Vorgangs-Bemerkung:<br>Gibt es eine Möglichkeit, eine E-Mail mit einer Auftragsbestätigung als Anhang direkt im HIS als Auftragsbestätigung hochzuladen?<br />
Momentan müssen wir die PDF ja auf dem PC zwischenspeichern und dann im HIS als Event Anhang hochladen.<br><br>letzte Event-Bemerkung von <b>hoj</b>:<br>Anregung von ....some name....<br>
......footer.......
--b1_49abaa950e1203ed180ed1d5471145f7--
我希望現在清楚我的意思。我知道BCC無法顯示,因爲電子郵件服務器會刪除它們。而那不是我想要的。我只想知道爲什麼電子郵件將顯示爲源代碼而不是普通電子郵件。
你需要發佈你的代碼 - 這裏沒有足夠的繼續。 BCC不會包含在郵件標題中,除非您使用的是「郵件()」傳輸方式 - 但我無法確定您在發佈的最簡單信息時所做的操作。 – Synchro
對不起,我認爲這就夠了。我編輯我的帖子更多的代碼和更好的解釋我的問題是什麼。 –