Following is my function to send mail using codeigniter. There is issue related to using link only, I have tested all other things. If I remove link or use of domain name mail goes to inbox.
public function send_notification()
{
$body = "<div style='width:100%; margin:0 auto;'>
<table style='background-color:#ffffff;padding:0 10px; width:100%;box-shadow: 0px 0px 4px #263b91;'>
<tr>
<td style='text-align:center;'>
<a href='https://example.com'><b>Click Here</b></a>
</td>
</tr>
<!-- mail body -->
<tr>
<td>
<p style='width:100%;'>
<h4>Message</h4>
</p>
</td>
</tr>
</table>
<!-- footer -->
<table style='width:100%;background-color:#8dc440;box-shadow: 0px 2px 3px 0px #000;'>
<tr>
<td>
<p style='font-size:14px; text-align:center;'>
<small>© 2017 All Rights Reserved</small>
</p>
</td>
</tr>
</table>
</div>";
$subject = "Notification from Example";
$config['protocol'] = $this->config->item('protocol'); // 'smtp'
$config['smtp_host'] = $this->config->item('smtp_host'); //mail.example.com
$config['smtp_port'] = $this->config->item('smtp_port'); //25
$config['smtp_timeout'] = $this->config->item('smtp_timeout'); //7
$config['smtp_user'] = $this->config->item('smtp_user'); info@example.com
$config['smtp_pass'] = $this->config->item('smtp_pass');
$config['charset'] = $this->config->item('charset'); utf-8
$config['newline'] = $this->config->item('newline'); \n\r
$config['mailtype'] = 'html'; // or text
$config['validation'] = TRUE; // bool whether to validate email or not
$this->email->initialize($config);
$this->email->from('info@example.com','Exaple');
$this->email->to('prashant.hanamghar@gmail.com');
$this->email->subject($subject);
$this->email->message($body);
$this->email->send();
}