我使用php的curl()函数从服务器A连接到邮件服务器B发送邮件。
邮件发送成功但出现了两个问题。
问题1:
邮件没有换行,所以所有的 \n 都变成了普通文本。之前从同一台服务器发送邮件从未遇到过这个问题。现在使用 curl() 发送时出现了这个问题。邮件服务器已经安装了 php7。这是 php7 还是 curl() 的问题?
问题2:
邮件没有主题,但是 $subject 变量在脚本运行时存在,我通过在调用 PHPMailer() 函数之前发送了一封简单的邮件来检查这一点。
那么,为什么 PHPMailer 忽略了 $subject?在安装有 php5 的 A 服务器上从未遇到过这个问题。
上面的邮件是通过 $subject 变量发送的。但是使用 PHPMailer 发送的邮件没有主题行。
$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);
邮件发送成功但出现了两个问题。
问题1:
邮件没有换行,所以所有的 \n 都变成了普通文本。之前从同一台服务器发送邮件从未遇到过这个问题。现在使用 curl() 发送时出现了这个问题。邮件服务器已经安装了 php7。这是 php7 还是 curl() 的问题?
问题2:
邮件没有主题,但是 $subject 变量在脚本运行时存在,我通过在调用 PHPMailer() 函数之前发送了一封简单的邮件来检查这一点。
那么,为什么 PHPMailer 忽略了 $subject?在安装有 php5 的 A 服务器上从未遇到过这个问题。
mail('my@email', 'check if subject exists', $subject);
上面的邮件是通过 $subject 变量发送的。但是使用 PHPMailer 发送的邮件没有主题行。
$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");
<br>
吗? - Fevly Pallar