14

CodeIgniter で SMTP をセットアップしようとしています。すべてが正常に機能しており、ページに成功メッセージが表示されます。その電子メールはエラーなしで送信されます。ただし、メールは届きません。

これが私が使用するコードです:

$config = Array(
'protocol' => 'smtp',
'smtp_host' => 'ssl://smtp.googlemail.com',
'smtp_port' => 465,
'smtp_user' => 'my-email@gmail.com', 
'smtp_pass' => '***', 
'mailtype' => 'html',
'charset' => 'iso-8859-1',
'wordwrap' => TRUE
);
$this->load->library('email', $config);

$this->email->from('my-email@gmail.com', 'Explendid Videos');
$this->email->to('my-email@gmail.com');
$this->email->reply_to('my-email@gmail.com', 'Explendid Videos');


$this->email->subject('Explendid Video - Contact form');

$message = "Contact form\n\n";
$message .= "Name: ". $_POST['name'] . "\n";
$message .= "Phone: ". $_POST['phone'] . "\n";
$message .= "Email: ". $_POST['email'] . "\n";

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

$this->email->send();

メールが実際に配信されない理由は何でしょうか。

4

7 に答える 7

30

次のように変更します。

$ci = get_instance();
$ci->load->library('email');
$config['protocol'] = "smtp";
$config['smtp_host'] = "ssl://smtp.gmail.com";
$config['smtp_port'] = "465";
$config['smtp_user'] = "blablabla@gmail.com"; 
$config['smtp_pass'] = "yourpassword";
$config['charset'] = "utf-8";
$config['mailtype'] = "html";
$config['newline'] = "\r\n";

$ci->email->initialize($config);

$ci->email->from('blablabla@gmail.com', 'Blabla');
$list = array('xxx@gmail.com');
$ci->email->to($list);
$this->email->reply_to('my-email@gmail.com', 'Explendid Videos');
$ci->email->subject('This is an email test');
$ci->email->message('It is working. Great!');
$ci->email->send();
于 2013-06-24T11:34:42.643 に答える
4

これは、apache2 サーバー ci 2.1.4 での作業です。非常に単純です。最初に、application/config ディレクトリの下に email.php というファイルを作成し、その中に次のコードを入力します~>

<?php
$config['protocol'] = 'smtp';
$config['smtp_host'] = 'ssl://smtp.gmail.com';
$config['smtp_port'] = '465';
$config['smtp_user'] = 'u'r gmail account';
$config['smtp_pass'] = 'password of u'r account';
$config['charset'] = 'utf-8';
$config['newline'] = "\r\n";
?>

次に、application/controllers ディレクトリの下に email.php というファイルを作成し、次のコードを入力します~>

    <?php
    class Email extends CI_Controller
    {

    function send()
    {
    // Loads the email library
    $this->load->library('email');
    // FCPATH refers to the CodeIgniter install directory
    // Specifying a file to be attached with the email
    // if u wish attach a file uncomment the script bellow:
    //$file = FCPATH . 'yourfilename.txt';
    // Defines the email details
    $this->email->from('some@of.mailaddress', 'ur Name');
    $this->email->to('email@detiny.your');
    $this->email->subject('Email Test');
    $this->email->message('Testing the email class.');
    //also this script
    //$this->email->attach($file);
    // The email->send() statement will return a true or false
    // If true, the email will be sent
    if ($this->email->send()) {
    echo "you are luck!";
    } else {
    echo $this->email->print_debugger();
    }
    }

    }
    ?>
于 2013-11-14T04:59:34.820 に答える
0

問題をデバッグするために、このスクリプトを変更できます。

$this->email->send();

if($this->email->send())
{
    echo 'Your email was sent.';
}

else
{
    show_error($this->email->print_debugger());
}
于 2013-06-24T11:18:04.677 に答える
0

php.ini ファイルを確認しましたか? それを試してみてください。そうでない場合は、SPF を試すこともできます。SPF または Sender Policy Framework は、スパムを簡単に検出できる新しいテクノロジです。Gmail では、これらのメールを手動でスパムではないとマークしない限り、SPF が適用されます。これに関係なく、別のアドレスでメールを受信した場合は、Gmail にも届いているはずです。スパムの疑いが非常に高い場合でも、Gmail はメールを破棄せず、迷惑メール フォルダに振り分けられるため、スパムを徹底的に確認してください。

ウェブサーバーがメールを送信できるように SPF を設定すると、Gmail がウェブサーバーから送信されたメールを本物として受け入れるようになります。http://www.mydigitallife.info/how-to-set-up-and-create-sender-policy-framework-spf-domain-dns-txt-record-with-wizard/および Microsoft のウィザードを参照してください。

于 2013-06-24T11:04:36.400 に答える