2014-11-08 144 views
0

我正在使用codeigniter框架。在使用笨邮件功能发送邮件,邮件将被传递为垃圾邮件,我不知道为什么发生这种情况,我使用代码:使用codignator自由功能发送邮件作为垃圾邮件发送

$this->load->library('email'); 
    if($fromname==''){$fromname='MySystem';} 
    if($from==''){$from='[email protected]';} 
    if($reply==''){$reply=$from;} 
    $config = array(
    'protocol' => 'smtp', 
    'smtp_host' => host, 
    'smtp_port' => port, 
    'smtp_crypto' => 'ssl', 
    'smtp_user' => user_nam, 
    'smtp_pass' => pwd, 
    'mailtype' => 'html', 
    'charset' => 'utf-8', 
    'wordwrap' => TRUE 
    ); 
    $this->email->initialize($config); 
    $this->email->from($from, $fromname); 
    $this->email->reply_to($reply, $fromname); 
    foreach($result as $row){ 
    $this->email->to($to); 
    $this->email->subject($subject); 
    $this->email->message($message1); 

    $this->email->send(); 
    } 

通过使用此代码,邮件被发送给一组用户。这封邮件被收到为垃圾邮件。这是因为代码或服务器问题的一些错误?

+0

可能重复[我的邮件总是将垃圾邮件文件夹,即使交付很晚笨PHP的](HTTP:/ /stackoverflow.com/questions/26986619/my-mails-is-always-going-to-spam-folder-even-delivering-very-late-in-codeigniter) – turntwo 2014-11-18 05:12:14

回答

0

主要问题可能是您的from地址。发送电子邮件时,您说的发件人是[email protected]。收到您的电子邮件后,该服务将查找Gmail的SPF(http://en.wikipedia.org/wiki/Sender_Policy_Framework)DNS记录,以查看发送该电子邮件的服务器(您的服务器)是否为Gmail所说的服务器,这是允许的发件人,当然不是。由于该检查失败,电子邮件很可能以垃圾邮件结束。

解决这个问题的方法是将您的from地址设置为一个真实域,例如, [email protected]。然后,您需要设置SPF记录,以便您的服务器是该域的可信发件人。有教程在那里堆,以帮助这一点,但你可以简单地使用它作为一个TXT纪录yourdomain.com:

v=spf1 ip4:<your server IP> ~all 

如果从yourdomain.com从其他服务发送电子邮件(如谷歌企业应用套件)你也想为此添加规则。

即使如此,您的电子邮件也不能保证不会被垃圾邮件所覆盖。如果邮件的内容过于简单和类似垃圾邮件,或者如果您未包含取消订阅链接,那么您最终还是会收到垃圾邮件。

+0

如果$ from是NULL,那么只有这个var被设置为:'[email protected]'if($ from ==''){$ from='[email protected]';} – Sinto 2014-11-08 07:28:49

+0

虽然同样的原则适用。您最终从该域名上的SPF记录指定的授权发件人发送的电子邮件? – maknz 2014-11-10 01:44:02

0

好吧,我知道了罚款通过改变$配置和初始化($配置)的

$config = array(
     'protocol' => 'smtp', 
     'smtp_host' => $host, 
     'smtp_port' => $port, 
     'smtp_crypto' => $crypto, 
     'smtp_user' => $user_nam, 
     'smtp_pass' => $pwd, 
     'mailtype' => 'html', 
     'charset' => 'utf-8', 
     'wordwrap' => TRUE, 
     'smtp_auth' => TRUE 
     ); 

    $this->load->library('email', $config); 
    $this->email->set_newline("\r\n"); 
    $this->email->initialize($config);