Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php PEAR::使用DSN SMTP服务的邮件_Php_Email_Smtp_Pear_Dsn - Fatal编程技术网

Php PEAR::使用DSN SMTP服务的邮件

Php PEAR::使用DSN SMTP服务的邮件,php,email,smtp,pear,dsn,Php,Email,Smtp,Pear,Dsn,您知道在PHP中使用Pear邮件函数是否可以设置DSN通信吗 说明: 如果用户在telnet会话中写入此代码: telnet smtp.example.com 25 [...] mail from: me@example.com 250 2.1.0 Ok rcpt to: you@fakemail.com NOTIFY=SUCCESS,FAILURE,DELAY ORCPT=rfc822;you@fakemail.com 250 2.1.5 Ok [] 当我的smpt服务器发送电子邮件时,我从

您知道在PHP中使用Pear邮件函数是否可以设置DSN通信吗

说明: 如果用户在telnet会话中写入此代码:

telnet smtp.example.com 25
[...]
mail from: me@example.com
250 2.1.0 Ok
rcpt to: you@fakemail.com NOTIFY=SUCCESS,FAILURE,DELAY ORCPT=rfc822;you@fakemail.com
250 2.1.5 Ok
[]
当我的smpt服务器发送电子邮件时,我从接收方smtp服务器(中继、失败等)收到一封带有状态代码的通知邮件。现在我想用Pear邮件做同样的事情,但是我找不到我把这个选项放在哪里了

这是我的代码:

$messageTEXT= "..." // text_message
$messageHTML="..." // html message

$headers=array();
$headers['From'] = "me@example.com";
$headers['To'] = "you@fakemail.com";
$headers['Subject'] = "Test mail"; 
$headers['X-Mailer']="My PHP mailer";
$headers['X-Priority']=3;
$headers['Errors-To'] = "me@example.com";
$headers['Return-Path'] = "me@example.com";
$headers['Disposition-Notification-To'] =  "me@example.com";

$message = new Mail_mime();
$message->setTXTBody($messageTEXT);
$message->setHTMLBody($messageHTML);

$mimeparams=array();
$mimeparams['charset']= "UTF-8";
$mimeparams['text_encoding']="8bit";
$mimeparams['text_charset']="UTF-8";
$mimeparams['html_charset']="UTF-8";

$body = $message->get($mimeparams);

$headers = $message->headers($headers);

$smtp = Mail::factory(
   'smtp', 
    array(
        'host' => "smtp.example.com", 
        'port' => "25", 
        'auth' => true, 
        'username' => "myuser", 
        'password' => "mypass")
);

$mail=$smtp->send($to, $headers, $body);

if (PEAR::isError($mail)) {
    print ("Error");
    return false;
}

您必须对PEAR::Mail和Net::SMTP进行一些黑客攻击,才能使其正常工作

标准的
Mail\u smtp::send()
方法调用
Mail\u RFC822::parseAddressList()
,这将拒绝额外的数据。注释掉这些行(第274行左右)应该可以让您开始

然后您需要破解
Net\u SMTP::rcptTo()
来传递原始数据,而不是将其包装在尖括号中


如果要绕过这些方法,请确保在其他地方对数据进行了清理。

您必须对PEAR::Mail和Net::SMTP进行一些黑客攻击,才能使其正常工作

标准的
Mail\u smtp::send()
方法调用
Mail\u RFC822::parseAddressList()
,这将拒绝额外的数据。注释掉这些行(第274行左右)应该可以让您开始

然后您需要破解
Net\u SMTP::rcptTo()
来传递原始数据,而不是将其包装在尖括号中

如果要绕过这些方法,请确保在其他地方对数据进行了清理。

$headers['X-Mailer']=“X-Mailer:My-PHP-Mailer”应读为
$headers['X-Mailer']=“我的PHP邮件”-虽然这不是问题(甚至不是真正的问题)
$headers['X-Mailer']=“X-Mailer:My-PHP-Mailer”应读为
$headers['X-Mailer']=“我的PHP邮件”-虽然这不是问题(甚至不是真正的问题)