Outlook не распознает iCal - PullRequest
0 голосов
/ 18 мая 2018

Я использую PHPMailer (), но когда я отправляю электронное письмо в Gmail с помощью iCal, Gmail распознает приглашение, но внешний вид этого не делает.

Как вы, ребята, можете видеть, что .ics прикреплен к e-почта, заголовки уже отправлены в течение.

<?php
# Inclui o arquivo class.phpmailer.php localizado na pasta phpmailer
require_once("class/class.phpmailer.php");
require_once("class/class.smtp.php");

# Inicia a classe PHPMailer
$mail = new PHPMailer();

# Define os dados do servidor e tipo de conexão

$mail->IsSMTP(); // Define que a mensagem será SMTP
$mail->Host = "ssl://smtp.gmail.com"; # Endereço do servidor SMTP
$mail->Port = 465; // Porta TCP para a conexão. Para GMAIL use 465, Locaweb 587
$mail->SMTPAutoTLS = false; // Utiliza TLS Automaticamente se disponível
$mail->SMTPAuth = true; # Usar autenticação SMTP - Sim
$mail->Username = 'EMAIL'; # Usuário do servidor SMTP (endereço de email)
$mail->Password = 'SENHA'; # Senha do servidor SMTP (senha do email usado)
# Define o remetente (você)
$mail->From = "___@gmail.com"; # Seu e-mail
$mail->FromName = "Nome"; // Seu nome

# Define os destinatário(s)//
$mail->AddAddress("__@hotmail.com", 'NOME');    # Os campos podem ser substituidos por variáveis
#$mail->AddAddress('webmaster@nomedoseudominio.com'); # Caso queira receber uma copia
#$mail->AddCC('ciclano@site.net', 'Ciclano'); # Copia
#$mail->AddBCC('fulano@dominio.com.br', 'Fulano da Silva'); # Cópia Oculta

# Define os dados técnicos da Mensagem
$mail->IsHTML(false); # Define que o e-mail será enviado como HTML
#$mail->CharSet = 'iso-8859-1'; # Charset da mensagem (opcional)

# Define a mensagem (Texto e Assunto)
$mail->Subject = "Convite: Teste de evento"; # Assunto da mensagem
$mail->Body = "-";
$mail->AltBody = "-";
$ical ="BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook MIMEDIR//EN
VERSION:1.0
BEGIN:VEVENT
DTSTART:20180714T210000Z
DTEND:20180714T230000Z
LOCATION:My office
CATEGORIES:Business
DESCRIPTION;ENCODING=QUOTED-PRINTABLE:This is a note associated with the
meeting=0D=0A
SUMMARY:Meeting to discuss salaries
PRIORITY:3
END:VEVENT
END:VCALENDAR";
$mail->Ical = $ical;

# Define os anexos (opcional)

$mail->addCustomHeader('MIME-Version: 1.0'."\n");
$mail->addCustomHeader('Content-Type: text/calendar; charset="utf-8"; method=REQUEST'."\r\n");
$mail->addCustomHeader('Content-Disposition: inline; filename="evento.ics"'."\r\n");
$mail->addCustomHeader('Content-Transfer-Encoding: 7bit'."\r\n");
$mail->addStringAttachment($ical,'evento.ics','base64','text/calendar'); # Insere um anexo

# Envia o e-mail
$enviado = $mail->Send();

# Limpa os destinatários e os anexos
$mail->ClearAllRecipients();

# Exibe uma mensagem de resultado (opcional)
if ($enviado) {
 echo "E-mail enviado com sucesso. Tempo maximo para retorno em 1h a parir de ".date('H:i')."";
} else {
 echo  "Não foi possível enviar o e-mail para a DC Software.        <b>Informações do erro:</b> ". $mail->ErrorInfo."";
}

?>

Я понятия не имею, почему Outlook не переоценивает его.Может ли кто-нибудь помочь мне с этой маленькой проблемой?

1 Ответ

0 голосов
/ 27 мая 2018

Попробуйте добавить METHOD:REQUEST сразу после BEGIN:VCALENDAR.В соответствии с RFC5545 3.7.2 вам необходимо указать оба - заголовок MIME method и свойство iCalendar METHOD.

...