Как я могу отправить электронную почту с помощью PHP в windows Azure?
Я использую простую функцию почты:
$to .= 'email-Id'; $subject = " Test Subject"; $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; $headers .= 'To: '.$to.'' . "\r\n"; $headers .= 'From: '.$name. '<'.$email.'>' . "\r\n"; echo $message='email text here'; @mail($to, $subject, $message, $headers);
Чтобы отправлять электронные письма с помощью PHP, у вас есть несколько вариантов:
Вариант 1: использование SMTP
Вам нужно будет изменить конфигурационный файл php.ini ( http://php.net/manual/en/ref.mail.php ) и установить значение SMTP на внешний SMTP-сервер, который вы можете использовать. На данный момент серверы SMTP не являются частью функций Windows Azure.
[mail function] SMTP = mail.mycompany.com
Вариант 2. Использование sendmail
Вам нужно будет изменить конфигурационный файл php.ini ( http://php.net/manual/en/ref.mail.php ) и установить значение sendmail_path для исполняемого файла sendmail.
[mail function] sendmail_path = "C:\wamp\sendmail\sendmail.exe -t"
Поскольку sendmail не существует в Windows, вам нужно использовать поддельный sendmail для Windows : http://glob.com.au/sendmail/
Вариант 3. Использование службы почты / smtp
Вы можете использовать службу SendGrid для отправки своих писем (у них есть предложение для пользователей Azure: http://sendgrid.com/azure.html ). Они позаботятся о отправке электронной почты, вам просто нужно вызвать REST api:
$sendgrid = new SendGrid('username', 'password'); $mail = new SendGridMail(); $mail->addTo('foo@bar.com')-> setFrom('me@bar.com')-> setSubject('Subject goes here')-> setText('Hello World!')-> setHtml('<strong>Hello World!</strong>'); $sendgrid->smtp->send($mail);
Я никогда не делал PHP, но следующее руководство было шаг за шагом и невероятно легко работать.
http://www.windowsazure.com/en-us/Documentation/Articles/store-sendgrid-php-how-to-send-email/
Надеюсь, это поможет кому-то.
Email ID ?? что это? Я предполагаю, что это адрес электронной почты получателя.
В ваших заголовках не требуется To: поскольку адрес указан в первом параметре. Если вы не знаете имя получателя и хотите, чтобы он увидел, что письмо было отправлено: Некоторое имя не просто вам не нужно. Также у вас есть ошибка: отсутствует <> до и после адреса электронной почты.
PS Письма электронной почты, отправленные через функцию mail () PHP, имеют одну из самых высоких скоростей завершения SPAM, особенно если у вас нет ключей домена и SPF, установленных в вашем DNS для этого. Если вы используете Cpanel, обратитесь к разделу «Проверка подлинности электронной почты» вашей электронной почты в Cpanel.
У меня были такие же проблемы, но это решение отлично работает для меня. просто выполните следующие действия:
$ mail-> Пароль = 'новый пароль';
4. Я надеюсь, что это сработает и для вас.