Bannister0946
Lt. Junior Grade
- Registriert
- Nov. 2021
- Beiträge
- 327
Nabend!
ich suche aktuell nach einer Lösung, um mit PHP meine Abwesenheitsnachricht bei Strato Webmail zu setzen.
Habe die Entwicklerkonsole von firefox offen gelassen und habe mir die Anfragen während des Logins und des aktivieren der Abwesenheitsnachricht angesehen.
Habe daraus folgenden Curl nachgebaut:
### Login ###
Resultat:
Array
(
[session] => XXXX
[user] => XXX
[user_id] => 9
[context_id] => 52515441
[locale] => de_DE
)
Sieht ja erst mal nicht schlecht aus.
### Abwesenheitsnachricht setzen ###
Das leider nicht so erfolgreiche Resultat:
Jemand eine Idee, wie ich das Thema realisieren kann?
ich suche aktuell nach einer Lösung, um mit PHP meine Abwesenheitsnachricht bei Strato Webmail zu setzen.
Habe die Entwicklerkonsole von firefox offen gelassen und habe mir die Anfragen während des Logins und des aktivieren der Abwesenheitsnachricht angesehen.
Habe daraus folgenden Curl nachgebaut:
### Login ###
PHP:
function startCurl$parameter) {
$ch = curl_init('https://webmail.strato.de/appsuite/api/login');
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_MAXREDIRS, 10);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_FRESH_CONNECT, TRUE);
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_2TLS);
curl_setopt($ch, CURLOPT_ENCODING, '');
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($parameter));
curl_setopt($ch, CURLOPT_HTTPHEADER,
array (
'Content-Type: application/x-www-form-urlencoded'
),
);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
return $response;
}
$login = startCurl(null, array(
'action' => 'login',
'name' => $username,
'password' => $password,
'staySignedIn' => true
));
echo '<pre>';
print_r($login);
echo '</pre>';
Resultat:
Array
(
[session] => XXXX
[user] => XXX
[user_id] => 9
[context_id] => 52515441
[locale] => de_DE
)
Sieht ja erst mal nicht schlecht aus.
### Abwesenheitsnachricht setzen ###
PHP:
function setCurl() {
global $login;
$ch = curl_init('https://webmail.strato.de/appsuite/api/mailfilter/v2?action=update&session='.$login["session"]);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_MAXREDIRS, 10);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_FRESH_CONNECT, TRUE);
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_2TLS);
curl_setopt($ch, CURLOPT_ENCODING, '');
#curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($parameter));
curl_setopt($ch, CURLOPT_POSTFIELDS, "{\"active\":true,\"actioncmds\":[{\"days\":\"1\",\"subject\":\"Mein Betreff\",\"text\":\"Meine Nachrichtrnmit Zeilenumbruch\",\"id\":\"vacation\",\"addresses\":[\"mail@meineDomain.de\"]}],\"test\":{\"id\":\"allof\",\"tests\":[{\"id\":\"currentdate\",\"comparison\":\"ge\",\"datepart\":\"date\",\"datevalue\":[1686268800000],\"zone\":\"+0200\"},{\"id\":\"currentdate\",\"comparison\":\"le\",\"datepart\":\"date\",\"datevalue\":[1689120000000],\"zone\":\"+0200\"}]},\"flags\":[\"vacation\"],\"rulename\":\"Abwesenheitsbenachrichtigung\",\"position\":0,\"id\":5}");
curl_setopt($ch, CURLOPT_HTTPHEADER,
array (
'Content-Type: application/x-www-form-urlencoded'
),
);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
return $response;
}
$set = setCurl();
echo '<pre>';
print_r($set);
echo '</pre>';
Das leider nicht so erfolgreiche Resultat:
PHP:
Array
(
[error] => Your session expired. Please login again.
[error_params] => Array
(
[0] => XXX
)
[categories] => TRY_AGAIN
[category] => 4
[code] => SES-0203
[error_id] => 967560772-59999975
[error_desc] => Your session XXX expired. Please start a new browser session.
)
Jemand eine Idee, wie ich das Thema realisieren kann?