05.12.2007, 17:32 | #1 |
Участник
|
E-mails из DAX4
Help, please!
Мне необходимо отправить мэил. Я написала следующий код: X++: SysMailer mail; ; mail = new SysMailer(); //mail.SMTPRelayServer("smtp.gmail.com"); mail.SMTPRelayServer("smtp.gmail.com",465,"email","password",false); mail.fromAddress("email"); mail.tos().clear(); mail.tos().appendAddress("emai]"); // Build the Message mail.htmlBody(strfmt("Hey")); mail.subject(strfmt("Test")); mail.sendMail(); Цитата:
Message (16:27:26)
Method 'send' in COM object of class 'CDO.Message' returned error code 0x80040213 (<unknown>) which means: The transport failed to connect to the server. Последний раз редактировалось lyolea84; 05.12.2007 в 17:36. |
|
05.12.2007, 17:49 | #2 |
Британский учённый
|
Mozhet eto pomozhet primer
|
|
05.12.2007, 19:10 | #3 |
Участник
|
Цитата:
Сообщение от Link
Mozhet eto pomozhet primer
Последний раз редактировалось lyolea84; 05.12.2007 в 19:16. |
|
05.12.2007, 20:49 | #4 |
NavAx
|
проверьте
Ping smtp.gmail.com и telnet smtp.gmail.com 25 |
|
05.12.2007, 23:02 | #5 |
Участник
|
GMail использует защищенное соединение на 465 порту
2 lyolea84 В вашем примере нет указания использовать защищенное соединение. GMail не возьмет от вашего почтового клиента почту открыттым текстом Вот пример как отправить почту через CDO Код: MailMessage mailMessage = new MailMessage(); mailMessage.To = "name@domain.com"; mailMessage.From = "name@domain.com"; mailMessage.Subject = "Message subject"; mailMessage.Body = "Message text"; SmtpMail.SmtpServer = "smtp.gmail.com"; mailMessage.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", 1); mailMessage.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "username"); mailMessage.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "password"); mailMessage.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserverport", 465); mailMessage.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpusessl", true); SmtpMail.Send(mailMessage) И еще, InteropPermission(InteropKind::ComInterop) используете в коде? |
|
06.12.2007, 10:48 | #6 |
Участник
|
Извените, но я не могу найти в Axapte MailMessage и SmtpMail классы
Цитата:
И еще, InteropPermission(InteropKind::ComInterop) используете в коде?
|
|
06.12.2007, 11:52 | #7 |
Участник
|
При следующем коде выбивает другая ошибка :
X++: InteropPermission comPermission = new InteropPermission(InteropKind::ComInterop); SysMailer mail; ; comPermission.assert(); mail = new SysMailer(); mail.tos().appendAddress("[EMAIL="name@rambler.ru"]name@rambler.ru[/EMAIL]"); mail.fromAddress("name@gmail.com"); mail.subject(strfmt("Test")); mail.htmlBody(strfmt("Hey")); mail.SMTPRelayServer("smtp.gmail.com"); mail.Fields().Add([URL]http://schemas.microsoft.com/cdo/configuration/smtpauthenticate[/URL], 1); mail.Fields().Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "user"); mail.Fields().Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "password"); mail.Fields().Add("http://schemas.microsoft.com/cdo/configuration/smtpserverport", 465); mail.Fields().Add("http://schemas.microsoft.com/cdo/configuration/smtpusessl", true); mail.sendMail(); CodeAccessPermission::revertAssert(); Цитата:
Message (10:45:47)
Method 'send' in COM object of class 'CDO.Message' returned error code 0x8004020E (<unknown>) which means: <unknown>. Последний раз редактировалось lyolea84; 06.12.2007 в 11:54. |
|
06.12.2007, 15:04 | #8 |
Злыдни
|
Мне кажется, что на Gmail закрыт relation. Поэтому отсылка почты от аккаунта gmail без предварительной аутентификации на сервере не пройдет.
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
06.12.2007, 15:55 | #9 |
Участник
|
Это классы из объектной модели CDO. Извените, что не пояснил. Поддерживает ли SysMailer, как обертка над CDO, в полной мере все возможности - не могу сейчас проверить. Но приведенный код отлично отправляет почту через gmail. Как правильно заметил KiselevSA, чтобы отправить почту через gmail нужно иметь там аккаунт. Но у вас он есть. Так что причина не в этом.
PS Стесняюсь спросить, логин и пароль вбивали вместо user и password? PPS Вам бы server response получить, gmail довольно внятно отвечает почему он не хочет отправлять почту. Последний раз редактировалось fomenka; 06.12.2007 в 16:08. |
|
06.12.2007, 16:39 | #10 |
Участник
|
|
|