gpt4 book ai didi

phpmailer 发送没有主题和换行符的邮件

转载 作者:行者123 更新时间:2023-12-05 06:42:15 28 4
gpt4 key购买 nike

我使用 php curl() 函数从服务器 A 连接到邮件服务器 B 以发送邮件。

$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);

邮件发送成功,但有2个问题。

问题 N 1

邮件到达时没有换行符,因此,所有\n 都只是纯文本。从同一台服务器发送邮件从来没有遇到过这个问题。现在,当我使用 curl() 发送时,出现了这个问题。邮件服务器安装了 php7。这应该是 php7 还是 curl() 问题?

问题 N 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");

最佳答案

问题编号1 可能是由于您正在使用的换行符。 \n 只是完整换行符的两个元素之一,它是一个“换行符”。一些邮件系统/服务器需要一个完整的换行符,即 \r\n,在这种情况下 \r 是一个“回车” ',完整换行符的第二个元素。

问题编号2...首先:您的$subject 中有什么?

关于phpmailer 发送没有主题和换行符的邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37631208/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com