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
Email 有没有办法删除kohana在电子邮件中设置的返回路径?_Email_Kohana_Swiftmailer_Sendgrid_Return Path - Fatal编程技术网

Email 有没有办法删除kohana在电子邮件中设置的返回路径?

Email 有没有办法删除kohana在电子邮件中设置的返回路径?,email,kohana,swiftmailer,sendgrid,return-path,Email,Kohana,Swiftmailer,Sendgrid,Return Path,我们的网站使用Kohana和php,我们使用sendgrid发送事务性电子邮件。有了gmail我们就有了大量的垃圾邮件问题,我们只发送选择加入的电子邮件,而且打开率很高。潜在问题之一是,我们的电子邮件标题中似乎有两条返回路径: 由我们在科哈纳的 正在由sendgrid插入 Sendgrid说,当他们发送消息时,为了处理跳出管理,他们会从中接收“信封”。但我们无法找到让科哈纳不插入这个的方法。有什么建议吗?代码示例: 科哈纳使用Swift发送邮件。下面是我们如何发送它们的。我们已尝试删除对via的

我们的网站使用
Kohana
php
,我们使用
sendgrid
发送事务性电子邮件。有了
gmail
我们就有了大量的垃圾邮件问题,我们只发送选择加入的电子邮件,而且打开率很高。潜在问题之一是,我们的电子邮件标题中似乎有两条返回路径:

  • 由我们在科哈纳的
  • 正在由
    sendgrid
    插入
    Sendgrid
    说,当他们发送消息时,为了处理跳出管理,他们会从中接收“信封”。但我们无法找到让科哈纳不插入这个的方法。有什么建议吗?代码示例: 科哈纳使用Swift发送邮件。下面是我们如何发送它们的。我们已尝试删除对via的回复

    $message->headers->set('reply-to', '');
    
    但它似乎不起作用。有趣的是,将它设置为非空值会改变它,但似乎没有办法完全消除它

    此函数的完整代码:

    /**
    *发送电子邮件。
    *
    *@param string |收件人电子邮件(和姓名)数组,或收件人、抄送、密件抄送姓名数组
    *@param string |数组发件人电子邮件(和名称)
    *@param字符串消息主题
    *@param字符串消息正文
    *@param boolean以HTML格式发送电子邮件
    *@param字符串回复地址。可选,默认为空,默认为“发件人地址”
    *@return发送电子邮件的整数
    */
    公共静态函数send($category、$to、$from、$subject、$message、$html=FALSE、$replyto=null)
    {
    //连接到SwiftMailer
    (电子邮件::$mail==NULL)和电子邮件::connect();
    //确定消息类型
    $html=($html===TRUE)?'text/html':'text/plain';
    //将mixpanel跟踪像素附加到html电子邮件
    如果($html){
    $mixpanel_token=FD_开发模式?“08c59f4e26aa718a1038459af75aa559”:“D863DC1A3A6242CEEE1435C0A50E5B7”;
    $json_数组='{“事件”:“电子邮件已打开”,“属性”:{“不同的_id”:“.$to.”,“令牌”:“.$mixpanel_令牌.”“,“时间”:“.time().”,“活动”:“.$category.”“}}}”;
    $message.='';
    }
    //创建消息
    $message=新的Swift_消息($subject,$message,$html,'8bit','utf-8');
    //正在为SendGrid添加标题,由David Murray添加
    $message->headers->set('X-SMTPAPI','{“category”:“.$category.'}”);
    如果(是字符串($to))
    {
    //单一收件人
    $recipients=新的Swift_地址($to);
    }
    elseif(is_数组($to))
    {
    if(isset($to[0])和isset($to[1]))
    {
    //创建到:地址集
    $to=数组('to'=>$to);
    }
    //创建收件人列表
    $recipients=新的Swift_收件人列表;
    foreach($to as$method=>$set)
    {
    if(!in_数组($method,array('to','cc','bcc'))
    {
    //用于:默认情况下
    $method='to';
    }
    //创建方法名
    $method='add'.ucfirst($method);
    if(是_数组($set))
    {
    //添加名为的收件人
    $recipients->$method($set[0],$set[1]);
    }
    其他的
    {
    //添加没有姓名的收件人
    $recipients->$method($set);
    }
    }
    }
    如果(是字符串($from))
    {
    //无名氏
    $from=新的Swift\U地址($from);
    }
    elseif(is_数组($from))
    {
    //从一个名字开始
    $from=新的Swift_地址($from[0],$from[1]);
    }
    //回复支持,非Swift标准,由Soham添加
    如果(!$replyto)$replyto=$from;
    $message->setReplyTo($replyto);
    返回电子邮件::$mail->send($message,$recipients,$from);
    }
    
    这不是一个真正的Kohana问题,而是一个Swiftmailer问题,因为Swiftmailer不是Kohana框架的标准配置。根据,您可以显式设置/获取返回路径:

    $message->setReturnPath('bounces@address.tld');
    

    希望这有帮助

    我只想说谢谢你间接地为我提供了这个解决方案

        // Adding header for SendGrid, added by David Murray
    $message->headers->set('X-SMTPAPI', '{"category" : "INSERT CATEGORY HERE"}');
    

    Sendgrid网站上的X-SMTPAPI使用文档很糟糕。

    我想这与Kohana无关,因为整个文件系统上的grep不会返回任何要设置的“返回路径”。我的猜测是sendgrid以某种方式默认了返回路径(因为sendgrid与Kohana相关?)。我们在Kohana中设置了一个,sendgrid正在设置它们自己的路径。由于sendgrid不易获得,您能否发布实现的任何代码?我看不到您的代码试图在哪里设置返回路径。回复和返回路径不同。你能在看到两个标题的地方发布原始电子邮件吗?试着删除你问题中关于Kohana的所有内容。这与问题无关,只是让人困惑。专注于速递员。根据解决方案,尝试查看原始电子邮件的标题,如Daan所说。但是,你根本就没有返回路径吗?Sendgrid设置了一个,他们说这是一个要求,所以我们根本不需要插入一个。我将尝试使用Swiftmailer标题:在这里,您可以阅读如何设置或取消设置它们。