Как я могу отправить электронную почту с помощью PHP в windows Azure?
Как я могу отправить электронную почту с помощью 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);
Ответы
Ответ 1
Для отправки писем с использованием 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('[email protected]')->
setFrom('[email protected]')->
setSubject('Subject goes here')->
setText('Hello World!')->
setHtml('<strong>Hello World!</strong>');
$sendgrid->smtp->send($mail);
Ответ 2
Я никогда не делал PHP, но следующее руководство было шаг за шагом и невероятно легко работать.
http://www.windowsazure.com/en-us/Documentation/Articles/store-sendgrid-php-how-to-send-email/
Надеюсь, что это поможет кому-то.
Ответ 3
email-Id?? что это?
Я предполагаю, что это адрес электронной почты получателя.
В заголовках не требуется значение To: поскольку адрес указан в первом параметре.
Если вы не знаете имя получателя и хотите, чтобы он увидел, что электронное письмо было отправлено на следующее: Некоторое имя не просто вам не нужно.
Также у вас есть ошибка: missing < > до и после адреса электронной почты.
P.S. Письма, отправленные через функцию PHP mail(), имеют одну из самых высоких скоростей завершения СПАМа, особенно если для этого у вас нет DNS-ключей и SPF.
Если вы используете Cpanel, обратитесь к разделу "Проверка подлинности электронной почты" вашей электронной почты в Cpanel.
Ответ 4
У меня была такая же проблема, но это решение отлично работает для меня.
просто выполните следующие действия:
- Просто включите двухэтапную аутентификацию в своей учетной записи Gmail.
- Перейдите к окну приложения и выберите приложение = другое, а затем введите AzureWebsite и сгенерируйте пароль и сохраните пароль.
- замените
$mail- > Пароль = 'новый пароль';
4. Я надеюсь, что это сработает и для вас.
Ответ 5
Обновленная информация @Nov-2017:
Полное сообщение в блоге:
https://blogs.msdn.microsoft.com/mast/2017/11/15/enhanced-azure-security-for-sending-emails-november-2017-update/
Рекомендуемый метод отправки электронной почты
"Microsoft рекомендует клиентам Azure использовать службы ретрансляции SMTP с проверкой подлинности (обычно они подключаются через TCP-порт 587 или 443, но часто поддерживают и другие порты)....."