Не получаю электронную почту, используя PHP - PullRequest
1 голос
/ 07 апреля 2011

Я хочу отправить письмо с подтверждением, используя код php.Я перепробовал все решения, такие как mail() и phpmailer, но ничего не работает.Вот мой код для mail()

ini_set(sendmail_from, "xyz@domainname.net" );
ini_set(SMTP, "aspmx2.googlemail.com" );
ini_set(smtp_port, 25 );
$username = "xyz";
 $password = "password";
$to=$email;
$subject="Activate you account"; 
$message="
Hello $fullname, \n \n
    ";
$headers="From: xyz@ domainname.net";
 mail($to, $subject, $message, $headers);
die ("You have been registerd. Check you email to activate your account!");

Я получаю сообщение “You have been registered. Check you email to activate your account” на странице, но я не получаю письмо.

Я пытался без ini_set(), но он все еще не работает.Я также установил SMTP и порт в файле php.ini, но он все еще не работает.

Пожалуйста, помогите !!Спасибо

Ответы [ 3 ]

4 голосов
/ 07 апреля 2011

Вы на самом деле не устанавливаете имя пользователя / пароль для вызова mail().Все, что вы делаете, это устанавливаете некоторые переменные, а затем никоим образом не используете эти переменные для почты.Поэтому ваша попытка отправить почту через Google не удалась, потому что вы не проходите аутентификацию.

Но, как уже говорили другие ответы, не используйте встроенную функцию mail().Используйте взамен PHPMailer или Swiftmailer .Они намного проще в использовании, обрабатывают все уродливые вещи, связанные с вложениями файлов и многочастной MIME-почтой, и делают все это за приятным интерфейсом ООП.

1 голос
/ 07 апреля 2011

К точкам здесь:

Вы звоните mail без проверки кода возврата - это означает, что вы знаете, что пытаетесь отправить сообщение, но не знаете, удалось ли это. Что не полезно для отладки.

И, во-вторых, Gmail требует зашифрованного соединения, прежде чем они позволят вам аутентифицироваться. И стандартное SMTP-соединение не шифруется.

0 голосов
/ 07 апреля 2011

Попробуйте отправить электронное письмо, используя PHPmailer Я слышал много замечательных вещей об этом.

Пример конфигурации PHPMailer

$mail->Mailer = "smtp";  
$mail->Host = "ssl://smtp.gmail.com";  
$mail->Port = 465;  
$mail->SMTPAuth = true; // turn on SMTP authentication  
$mail->Username = "username@gmail.com"; // SMTP username  
$mail->Password = "password"; // SMTP password 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...