В настоящее время у меня возникла проблема с попыткой использовать Azure в качестве SMTP-сервера. Я пытаюсь создать простую форму контакта, которая отправит электронное письмо, когда вы нажмете отправить. PHP-код прост и работает на другом сервере, как и в предыдущем проекте, но теперь мне нужно использовать сервер Microsoft Azure и из того, что я прочитал, мне нужно использовать либо вызов cURL, либо вызов sendmail API. Кто-нибудь знает, как это сделать, поскольку я не могу заставить его работать. Это код, который Microsoft говорят, что нужно использовать, чтобы получить CURL для работы,php call with cURL в windows azure
// Generate curl request
$session = curl_init($request);
// Tell curl to use HTTP POST
curl_setopt ($session, CURLOPT_POST, true);
// Tell curl that this is the body of the POST
curl_setopt ($session, CURLOPT_POSTFIELDS, $params);
// Tell curl not to return headers, but do return the response
curl_setopt($session, CURLOPT_HEADER, false);
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
// obtain response
$response = curl_exec($session);
curl_close($session);
// print everything out
print_r($response);
Я полагаю, что это намного проще, чем я могу видеть, но где именно я кладу PHP код в этом Curl код, чтобы получить это работать? Есть ли что-то еще, что мне не хватает на лазурной стороне вещей? У меня уже установлен sendmail на моем аккаунте, который был всем, что они сказали мне нужно.
вот мой PHP код в любом случае, если это помогает
$url = 'https://api.sendgrid.com/';
$user = '[email protected]';
$pass = 'password7';
$params = array(
'api_user' => $user,
'api_key' => $pass,
'to' => '[email protected]',
'subject' => 'testing from curl',
'html' => 'testing body1',
'text' => 'testing body2',
'from' => '[email protected]',
);
$request = $url.'api/mail.send.json';
if ($_POST["submit"]) {
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$human = intval($_POST['human']);
$from = 'Contact Form';
$to = '[email protected]';
$subject = 'Message from Contact Form ';
$body = "From: $name\n E-Mail: $email\n Message:\n $message";
// Check if name has been entered
if (!$_POST['name']) {
$errName = 'Please enter your name';
}
// Check if email has been entered and is valid
if (!$_POST['email'] || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
$errEmail = 'Please enter a valid email address';
}
//Check if message has been entered
if (!$_POST['message']) {
$errMessage = 'Please enter your message';
}
//Check if simple anti-bot test is correct
if ($human !== 5) {
$errHuman = 'Your anti-spam is incorrect';
}
// If there are no errors, send the email
if (!$errName || !$errEmail || !$errMessage || !$errHuman) {
if (mail ($to, $subject, $body, $from)) {
$result='<div class="alert alert-success">Thank You! I will be in touch</div>';
} else {
$result='<div class="alert alert-danger">Sorry there was an error sending your message. Please try again later</div>';
}
}
}
Добавьте это после того, как ваш 'curl_exec', чтобы получить дополнительную информацию об отладке:' если (curl_errno ($ сессия)) {эхо 'Curl ошибка:'. curl_error ($ сессия); } '. Добавьте это к своему вопросу и давайте посмотрим, можно ли решить эту проблему. С http://php.net/manual/en/function.curl-errno.php – Tom
Спасибо за помощь. Том, мне действительно удалось заставить его работать только в начале недели. Положите ответ на сообщение там, чтобы объяснить мои работы (и ошибки), чтобы оценить ваши усилия, чтобы помочь :) –