Cannot send mail with no from header. in codeigniter

A common issue!

In CodeIgniter, when sending an email using the email library, you need to specify a from header in the email configuration or in the email message itself. This is because many email servers and services require a valid from address to ensure that the email is not spam.

Here are a few ways to fix this issue:

Method 1: Specify the from header in the email configuration

In your config/email.php file, add the following line:

$config['from'] = '[email protected]';

This will set the default from address for all emails sent using the email library.

Method 2: Specify the from header in the email message

When sending an email using the email library, you can specify the from header as an array of values:

$this->email->from('[email protected]', 'Your Name');

This will set the from address and name for the specific email message.

Method 3: Use a default from address in the email library

You can also set a default from address in the email library itself. In your application/libraries/Email.php file, add the following code:

public function from($email, $name = '')
{
    $this->_from = array($email => $name);
    return $this;
}

Then, when sending an email, you can use the from method without specifying the from address:

$this->email->from();

This will use the default from address set in the Email library.

By specifying a valid from header, you should be able to send emails successfully using the email library in CodeIgniter.