0

私のプロジェクト用に Codeigniter で提供されている電子メール クラスを使用して、私のサイトに登録した人に電子メールを送信しようとしています。次のエラー メッセージが表示されます。

Exit status code: 1
Unable to open a socket to Sendmail. Please check settings.
Unable to send email using PHP Sendmail. Your server might not be configured to sendmail using this method.

$this->email->message('Welcome to '.$this->config->item('company_name').', "\r\n" Thank you for joining the '.$this->config->item('company_name').' team. We have listed your registration details below. Make sure you save this email. To verify this account please click the following link. "\r\n" '.anchor('register/verify/'.$registration_key, 'Click Here To Activate Your Account', '').' "\r\n" Please verfiy your account within 2 hours, otherwise your registration will become invalid and you will have to register again. "\r\n" Your email address: '.$post_email_address.' "\r\n" Your Password: '.$post_password.' "\r\n" Enjoy your stay here at '.$this->config->item('company_name').' "\r\n" The '.$this->config->item('company_name').' Team');

アップデート :

なんらかの理由でまだ同じエラーが発生し、エラーの原因がわからないため、コードを更新しています。

../application/configs/site_configs.php
<?php

$config['company_name'] = 'My Test Site';
$config['comapny_email'] = 'owner@testingsite.com';

ここで、サイト構成ファイルを自動ロードしていることにも言及したいと思います。

$autoload['config'] = array('site_configs');

コントローラの登録

// User was successfully created and the user needs to verify their account.
// Send registered an email informing them how to validate their account.
$this->load->library('email');
$this->email->from($this->config->item('company_email'), $this->config->item('company_name'));
$this->email->to($post_email_address);
$this->email->subject($this->config->item('company_name').' Registration');
//$message = 'Welcome to '. $this->config->item('company_name') ."\r\n";
//$message .= 'Thank you for joining the ' . $this->config->item('company_name') . ' team.';
//$message .= 'We have listed your registration details below. Make sure you save this email.';
//$message .= 'To verify this account please click the following link.'."\r\n";
//$message .= anchor('register/verify/'.$registration_key, 'Click Here To Activate Your Account', '')."\r\n";
//$message .= 'Please verfiy your account within 2 hours, otherwise your registration will become invalid and you will have to register again.'."\r\n";
//$message .= 'Your email address: '.$post_email_address."\r\n";
//$message .= 'Your Password: '.$post_password."\r\n";
//$message .= 'Enjoy your stay here at '.$this->config->item('company_name')."\r\n";
//$message .= 'The '.$this->config->item('company_name').' Team';
$this->email->message('Great registration.' /*$message */);
$this->email->send();
echo $this->email->print_debugger();
4

3 に答える 3

3

また、コードをもう少し読みやすくするようにしてください。メッセージの巨大な文字列が、動的変数に出入りする継続でいっぱいになっていることに気付きました。それが進むにつれて、文字列を一緒に連鎖させます。

なぜ試してみませんか

$message = 'Welcome to '. $this->config->item('company_name') ."\r\n";
$message .= 'Thank you for joining the ' . $this->config->item('company_name') . ' team.';
$message .= 'We have listed your registration details below. Make sure you save this email.';
$message .= 'To verify this account please click the following link.'."\r\n";
$message .= .anchor('register/verify/'.$registration_key, 'Click Here To Activate Your Account', '')."\r\n";
$message .= 'Please verfiy your account within 2 hours, otherwise your registration will become invalid and you will have to register again.'."\r\n";
$message .= 'Your email address: '.$post_email_address."\r\n";
$message .= 'Your Password: '.$post_password."\r\n";
$message .= 'Enjoy your stay here at '.$this->config->item('company_name')."\r\n";
$message .= 'The '.$this->config->item('company_name').' Team';



$this->email->message($message);

もう少し管理しやすく読みやすいところ。したがって、一重引用符または二重引用符が欠落している場所や、文字列を変数にチェーンするピリオドが欠落している可能性がある場所などを確認できます.

私が確信していない唯一のことは.anchor()、それが関数なのか他の何かなのかわからなかったが、完全に見えなかった1行です。

于 2013-11-07T17:54:29.720 に答える
1
    $this->load->library('email');

    $config = Array(
        'protocol' => 'smtp',
        'smtp_host' => 'smtp.googlemail.com',
        'smtp_port' => 587,
        'smtp_user' => 'example@gmail.com',
        'smtp_pass' => 'password',
        'mailtype'  => 'html', 
        'charset'   => 'iso-8859-1'
    );
    $this->email->set_newline("\r\n");


    $this->email->from('example@gmail.com', 'easyfact');
    $this->email->to('example@gmail.com');
    $this->email->cc('example@gmail.com');
    $this->email->bcc('example@gmail.com');

    $this->email->subject('Email Test');
    $this->email->message('Testing the email class.');

    $this->email->send();

    echo $this->email->print_debugger();
于 2013-11-07T18:00:54.857 に答える