我使用PHPMailer通过smtp-relay.gmail.com发送电子邮件-见上一篇文章通过G-Suite建立帐户后,我的凭据被接受,但是当电子邮件发送时,我可以看到纯文本版本,以及html版本,一路上还有一些其他角色:
------example.com----250cd4bbb8be52d828379181e485c269 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Order Received
...
------example.com----250cd4bbb8be52d828379181e485c269 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 8bit
然后是html版本,以以下内容结尾:
------example.com----250cd4bbb8be52d828379181e485c269--
当我使用香草版本时,它工作得很好,没有看到纯文本或哑剧边界数据:
$send = mail($recpEmails, $subject, $htmlMessage, $headers);
变量$htmlMessage仍然保存与以前相同的信息,但现在PHPMailer通过以下行发送它:
$mail->Body = $htmlMessage;
我不会看到纯文本或这些带有破折号的其他行。为什么通过PHPMailer发送
是因为我加了下面一行吗?
$mail->IsHTML(true);
是由于以下行引起的吗?如果是,那么我应该将其设置为什么?
$mail->SMTPDebug = 3;
G-Suite中是否有配置
以下是上一篇文章的更新代码:
$mail = new PHPMailer(true);
$mail->isSMTP();
$mail->SMTPDebug = 3;
$mail->SMTPAuth = true;
$mail->SMTPSecure = "tls";
$mail->Host = "smtp-relay.gmail.com";
$mail->Port = "587";
$mail->Username = "info@example.com";
$mail->Password = "somePassword";
$mail->setFrom("info@example.com");
$mail->isHTML(true);
$mail->Subject = $subject;
$mail->Body = $htmlMessage;
$mail->addAddress($recpEmails);
$mail->Send();
提前感谢
结果发现答案在下面的帖子里
我用下面的方法通过PHP的邮件在仅文本和html版本之间构建mime边界:
创建文本消息-这应该与html完全相同,以避免被标记为垃圾邮件:
$plain_text = ""; // same words that will appear in the html
开始创建mime边界:
# -=-=-=- MIME BOUNDARY
$mime_boundary = "----example.com----".md5(time());
# -=-=-=- MAIL HEADERS
创建主题:
$subject = "example.com\n";
创建标头,其中将包括您前面开始的mime边界。此外,在头中添加纯文本消息-在第一个mime边界之间:
$headers = "From: example.com <cs@example.com>\n";
$headers .= "Reply-To: example.com <cs@example.com>\n";
$headers .= "BCC: example.com <info@example.com>\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: multipart/alternative; boundary=\"$mime_boundary\"\n";
$htmlMessage = "--$mime_boundary\n";
$htmlMessage .= "Content-Type: text/plain; charset=us-ascii\n";
$htmlMessage .= "Content-Transfer-Encoding: 7bit\n";
$htmlMessage .= "$plain_text\n";
$htmlMessage .= "--$mime_boundary\n";
$htmlMessage .= "Content-Type: text/html; charset=UTF-8\n";
$htmlMessage .= "Content-Transfer-Encoding: 8bit\n\n";
$htmlMessage .= "<html>\n";
$htmlMessage .= "<body>\n";
$htmlMessage .= "" // has to be the same words as the plain text to avoid being marked as spam
$htmlMessage .= "</body>\n";
$htmlMessage .= "</html>\n";
完成哑剧边界:
# -=-=-=- FINAL BOUNDARY
$htmlMessage .= "--$mime_boundary--\n\n";
# -=-=-=- SEND MAIL
然而,使用PHPMailer,所有这些代码不再需要使用以下两行代码:
$mail->AltBody = $plain_text;
$mail->Body = $htmlMessage;
以下是我测试和使用的内容:
$mail = new PHPMailer(true);
$mail->isSMTP();
$mail->SMTPDebug = 3;
$mail->SMTPAuth = true;
$mail->SMTPSecure = "tls";
$mail->Host = "smtp-relay.gmail.com";
$mail->Port = "587";
$mail->Username = "cs@example.com";
$mail->Password = "somePassword";
$mail->setFrom("cs@example.com");
$mail->isHTML(true);
$mail->Subject = $subject;
$mail->AltBody = $plain_text;
$mail->Body = $htmlMessage;
$mail->addAddress($recpEmails);
$mail->Send();
差点忘了,但我就是这样添加密件抄送的:
$mail->addBCC("info@example.com");
问题内容: 我希望能够执行拟合,使我可以将任意曲线函数拟合到数据,并允许我在参数上设置任意界限,例如,我想拟合函数: 说: 在以下范围内: 并且是积极的 有一个很好的scipy curve_fit 函数,但是它不允许指定参数范围。还有一个不错的http://code.google.com/p/pyminuit/库,该库可以进行泛型最小化,并且可以设置参数的范围,但在我的情况下,它没有涵盖范围。 问
null 这是第二步,我正在试图弄清楚。Tika有一种方法可以获得给定MIME的首选扩展(请参见getExtension),但我想反过来:给定扩展,检查MIME是否有效。
我一直在捕捉非数字时遇到问题。 我试过了,但抓不住。如果我让它捕获非数字,但不让用户再次尝试输入。。。它完全停止了我的代码。 这是我的密码:
问题内容: 我有以下CSS: 添加边框半径:5px似乎没有任何作用,我认为这是因为我使用的是边框渐变,我是否有办法完全实现所需的5px边框半径? 问题答案: You cannot use with gradient. Here is another idea where you can rely on multiple background and adjust the : 如果需要透明性,可以考
这里是Java/C开发者。试图学习C语言,但我对数组的内存分配感到困惑。 这里发生了什么? 输出 怎么会这样?为什么我不能越界异常或程序崩溃?我能无限地做到这一点吗?在这种情况下,我的数组长度是多少?如果我的数组允许我将值放在界限之外,那么通过分配内存有什么意义?这对我来说毫无意义。