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标题:在这里,您可以阅读如何设置或取消设置它们。