hiện tại tôi đang gặp sự cố khi cố gắng sử dụng Azure làm máy chủ SMTP. Tôi đang cố tạo một biểu mẫu liên hệ đơn giản sẽ gửi email khi bạn nhấn gửi. Mã PHP đơn giản và hoạt động trên một máy chủ khác vì nó là từ một dự án trước đó, nhưng tôi cần sử dụng máy chủ Microsoft Azure ngay bây giờ và từ những gì tôi đọc tôi cần sử dụng cURL hoặc một cuộc gọi API sendmail. Có ai biết làm thế nào để làm điều này như tôi không thể có vẻ để làm cho nó hoạt động. Đây là mã mà Microsoft nói rằng bạn cần phải sử dụng để có được cURL để làm việc,Cuộc gọi php với cURL trong cửa sổ 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);
tôi tưởng tượng đây là đơn giản hơn nhiều sau đó tôi có thể nhìn thấy, nhưng nơi chính xác để tôi đặt mã php của tôi trong mã cURL này để có được nó hoạt động? Có điều gì khác mà tôi đang thiếu ở phía bên phải của sự vật không? Tôi đã cài đặt sendmail trên tài khoản của tôi, đó là tất cả những gì họ nói tôi cần.
đây là mã php của tôi anyway nếu nó giúp
$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>';
}
}
}
Thêm số này sau 'curl_exec' để nhận thêm một số thông tin gỡ lỗi:' if (curl_errno ($ session)) {echo 'Lỗi curl:'. curl_error ($ session); } '. Thêm điều đó vào câu hỏi của bạn và cho phép xem liệu chúng tôi có thể giải quyết vấn đề này hay không. Từ http://php.net/manual/en/function.curl-errno.php – Tom
Cảm ơn sự giúp đỡ của bạn Tom, tôi thực sự quản lý để làm cho nó hoạt động ngay từ đầu tuần. Đặt câu trả lời cho bài đăng lên đó để giải thích hoạt động của tôi (và những sai lầm) đánh giá cao nỗ lực của bạn để giúp đỡ :) –