我试图发送PHP邮件与pdf附件和它显示此错误:电子邮件未发送。错误:SMTP错误:不接受数据。SMTP服务器错误:DATA END命令失败详细信息:事务失败:缺少开始边界SMTP代码:554
我试图在所有地方添加哑剧边界,但结果相同。
<?php
include dirname(__FILE__) . '/../views/pdf-receipt.php';
function sendMailTest(
$recipient_mail, $recipient_name, $from_mail, $from_name, $subject, $body, $body_without_html, $attachments=NULL
) {
require 'folder/PHPMailer-5.2.26/PHPMailerAutoload.php';
$mail = new PHPMailer;
try {
$mail->isSMTP();
$mail->setFrom($from_mail, $from_name);
$mail->addAddress($recipient_mail, $recipient_name);
$mime_boundary = "Name of company".md5(time());
$mail->SMTPDebug = true;
$mail->Host = 'email-smtp.eu-west-1.amazonaws.com';
$mail->Username = 'XXX';
$mail->Password = 'XXX';
$mail->Encoding = 'quoted-printable';
$mail->addCustomHeader('Content-ID', '20cca', 'Content-Type', 'multipart/mixed', 'boundary='.$mime_boundary.'\n');
$mail->Body = "--$mime_boundary\n";
$mail->CharSet = 'UTF-8';
$mail->Subject = utf8_encode($subject);
$mail->Body .= "Hey\n";
$mail->AltBody .= "--$mime_boundary\n".$body_without_html;
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'tls';
$mail->Port = 000;
$mail->isHTML(true);
$data = '%PDF-1.2 6 0 obj << /S /GoTo /D (chapter.1) >>';
// if i comment line below email is sent properly,
// if i use AddAttachment local pdf file its working also,
// but i use TCPD generated PDF and attaching it, if i will
// just write it out to the message body i will see it as a
// text or if i will attach 'addStringEmbeddedImage' its
//displayed correctly but on same line as message text
// $attachments is pretty much this:
// $pdf->Output("test.pdf", "S");
// tried this $mail->Body .= "--$mime_boundary\n"; before next line
// did not help
$mail->AddStringAttachment($attachments, 'base64', 'application/pdf');
if($mail->send()) {
return;
}
} catch (Exception $e) {}
echo 'E-mail not sent. Error: ', $mail->ErrorInfo, PHP_EOL;
}
?>
我希望电子邮件发送附件,但没有看到起始边界错误。
首先,我真的希望您没有实际使用PHP 5.2。
在这里,你正在尝试射击自己的脚:
$mail->addCustomHeader('Content-ID', '20cca', 'Content-Type', 'multipart/mixed', 'boundary='.$mime_boundary.'\n');
$mail->Body = "--$mime_boundary\n";
使用PHPMailer的原因是,您不必做这样的事情;已经为你准备好了。当你试图像这样颠覆它时,它只会变得一团糟,正如你所发现的。
您已经努力将PHPMailer代码包装在try/catch块中,但是您没有告诉PHPMailer抛出异常(通过将true
传递给构造函数),并且您的catch块是空的,所以它什么也不做。
我重写了它以修复这些问题,并更合理地分组设置:
include dirname(__FILE__) . '/../views/pdf-receipt.php';
function sendMailTest(
$recipient_mail,
$recipient_name,
$from_mail,
$from_name,
$subject,
$body,
$body_without_html,
$attachments = null
) {
require_once 'folder/PHPMailer-5.2.26/PHPMailerAutoload.php';
$mail = new PHPMailer(true);
try {
$mail->isSMTP();
$mail->SMTPDebug = 2;
$mail->Host = 'email-smtp.eu-west-1.amazonaws.com';
$mail->SMTPSecure = 'tls';
$mail->Port = 587;
$mail->SMTPAuth = true;
$mail->Username = 'XXX';
$mail->Password = 'XXX';
$mail->CharSet = 'UTF-8';
$mail->setFrom($from_mail, $from_name);
$mail->addAddress($recipient_mail, $recipient_name);
$mail->Subject = $subject;
$mail->Body .= $body;
$mail->AltBody = $body_without_html;
$mail->isHTML(false);
$data = '%PDF-1.2 6 0 obj << /S /GoTo /D (chapter.1) >>';
$mail->addStringAttachment($data, 'receipt.pdf');
$mail->send();
} catch (Exception $e) {
echo 'E-mail not sent. Error: ', $mail->ErrorInfo, PHP_EOL;
}
}
我无法发送带有文本附件的电子邮件(没有附件,一切正常)。我正在使用actionmailer 3.2。11并尝试通过亚马逊SES发送电子邮件。在我看来,amazon snmp服务器与我生成的电子邮件有问题。生成电子邮件的代码如下所示: 发送邮件时出现错误消息:。 产生的邮件如下所示: 将其作为测试邮件发送给SES也会导致“缺少开始边界”。所以我认为交付的内容一定有问题。 在视图文件夹中,只有一个.t
我需要将邮件从我的gmail帐户发送到另一个帐户。我使用了以下代码。 但我得到的错误如下。。。javax。邮政MessaginException:无法连接到SMTP主机:SMTP。gmail。com,端口:25 我该怎么解决这个问题。你能帮我吗?
我使用了phpmailer()概念,使用php脚本从共享服务器向用户发送邮件,但根据phpmailer代码,即使脚本中的所有内容都正确,我也无法发送邮件。 我的代码如下: 注意:我使用“GMail”作为我的SMTP服务器,SMTPSecure是“ssl”,端口是“465”,用户名是 我使用了VPS共享服务器,并将我的php脚本保存在该服务器上。 我认为我的php脚本没有问题,我不知道为什么它不起作
我一直在用代表我的office365帐号发送SMTP邮件,工作了大概一个星期,然后突然不工作了,不知道怎么变了。 当我在PHPMailer中启用high debug logging时,我看到: SMTP- 这篇文章似乎是最相关的: 不接受来自服务器的身份验证:504 5.7.4无法识别的身份验证类型 以下是我交给PHPMailer的文字SMTP设置: 以及实际的PHP代码: 作为理智检查,我在中使
我正在使用谷歌的邮件服务器发送电子邮件。对于电子邮件发送,我使用PHPMailer。这是我在示例中使用的代码片段。com/contactus站点: 代码向我发送了一封电子邮件(support@example.com)其标题为: 问题是,当我使用不同的地址作为用户名和密码进行身份验证时,消息不会被发送。错误是: 我不知道为什么它与我每天使用的私人gmail帐户一起工作,为什么它不与我拥有的其他gma
我使用的PHPMailer表格在这里找到。 从网站下载的示例是“接触-3”,在引导主题中使用PHPMailer通过gmail发送SMTP电子邮件。当我使用“接触-1”时,它完全适用于我的托管域电子邮件地址,但SMTP版本适用于gmail地址,联系人表单不会提交。 在下面的代码中,我更改了以下行以添加我的gmail地址和gmail密码: 任何关于使用给定信息进行此工作的帮助都将不胜感激-提前感谢!