Die Meldung "Client wurde nicht authentifiziert senden Sie anonyme E-mail beim E-MAIL VON" Fehler von Exchange-SMTP mit Rost lettre Bibliothek

Schreibe ich den Rost von der Anwendung, die sendet E-Mails über einen Exchange-server mit SMTP-Funktionalität aktiviert. Nach Microsoft ' s Webseite, die Einstellungen sind erforderlich:

  • - Server-Adresse smtp.office365.com
  • Port 587
  • StartTLS Aktiviert
  • Anmeldeinformationen für E-mail-Konto-login -

Diese werden untermauert durch die POP - /IMAP-Einstellungen des webmail-Dienst.

Hier ist mein code (mit Zensur):

extern crate lettre;

use self::lettre::email::EmailBuilder;
use self::lettre::transport::smtp::{SecurityLevel, SmtpTransportBuilder, SUBMISSION_PORT};
use self::lettre::transport::smtp::authentication::Mechanism;
use self::lettre::transport::EmailTransport;

pub fn send_mail() {
    let email = EmailBuilder::new()
        .from("my email")
        .to("destination email")
        .body("testing")
        .subject("testing")
        .build()
        .unwrap();

    //Connect to SMTP server
    let mut transport = SmtpTransportBuilder::new(("smtp.office365.com", SUBMISSION_PORT))
        .expect("Failed to create email transport")
        .encrypt()
        .smtp_utf8(true)
        .credentials("my email", "my password")
        .authentication_mechanism(Mechanism::Login)
        .build();
    println!("Mail transport built");

    println!("{:?}", transport.send(email.clone()));
}

Wenn ich kompilieren und führen Sie den code,es gibt mir diese Fehlermeldung:

Err(Permanente(Antwort { code: Code { Schweregrad:
PermanentNegativeCompletion, Kategorie: Unspecified3, detail: 0 },
Nachricht: ["5.7.57 SMTP; Client wurde nicht authentifiziert zu versenden anonym
mail bei MAIL FROM [SYXPR01CA0106.ausprd01.prod.outlook.com]"] }))

Warum ist das passiert?

Den nächsten habe ich in meiner Forschung ein Problem auf GitHub in Bezug auf das lettre-Bibliothek nicht unterstützt, die Login - Authentifizierung-Mechanismus (Office 365) verwendet werden; jedoch, die Codebasis wurde aktualisiert, um die Unterstützung Login und ich bin mit dem master-Zweig direkt von GitHub, so dass theoretisch meinen Antrag unterstützen sollte, die Login Mechanismus.

Edit: Vergaß zu erwähnen, dass ich versuchte, ein EHLO an den server, aber es kehrte eine (AUFTRAGGEBER:(Connection closed)) - Fehler.

vielleicht haben Sie zensiert Ihre E-Mail-Adresse, aber nur für den Fall: Die Serverantwort war: 5.7.57 SMTP; Client wurde nicht authentifiziert senden Sie anonyme E-mail beim E-MAIL
Ja, meine E-Mail-Anmeldeinformationen sind in den code, ich werde versuchen mit einigen alternativen Anmeldeinformationen, um zu sehen, ob es funktioniert. Wenn das nicht funktioniert, werde ich versuchen, das Kennwort ändern der Methode, und dann nach, dass ich gehe zurück, um zu versuchen, verschiedene Einstellungen mit dem transport. Danke für den link.
Ich löste es! Ich benutzte telnet und openssl, um zu versuchen, eine Verbindung zu meinem SMTP-server, wo ich fand, dass AUTH-LOGIN erfordert 3 Befehlen; senden Sie den AUTH-LOGIN-code, der das senden von Benutzername und ein anderer das Kennwort zu senden. Stellt sich heraus, das lettre-Bibliothek implementiert alle seine AUTH-Befehle als Befehle, so dass diese nicht funktioniert mit dem server. Ich habe die Quellcodes für die Bibliothek zu, so verändert sich der senden-Funktion zu tun, die drei separate Befehle, meinen code neu kompiliert und alles hat gut funktioniert 🙂

InformationsquelleAutor foggy0400 | 2017-05-18

Schreibe einen Kommentar