使用CrossFilePicker选择一个文件,然后发送电子邮件附件

时间:2018-07-17 11:05:04

标签: email xamarin xamarin.forms attachment

我有一个按钮,该按钮使用CrossFilePicker在android文件夹中选择PDF或图片,然后将其附加到消息中,如下所示:

message.Attachments.Add("What do I put here");

我不确定在Add方法中需要把什么作为第一个参数。

XAML:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
         xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
         x:Class="AppETF.View.Menu.DetailViews.SignalementEM">
<ContentPage.Content>
    <Grid 
        VerticalOptions="FillAndExpand">
        <Button 
            Text="Piece jointe" 
            x:Name="fileLabel" 
            Clicked="File" 
            BackgroundColor="White" 
            FontSize="25"/>
        <Button 
            Text="Envoyer l'email" 
            Clicked="SendSMTPMail" 
            BackgroundColor="White" 
            FontSize="25"/>
    </Grid>
</ContentPage.Content>

后面的代码:

private async void File(object sender, EventArgs e)
{
    var file = await CrossFilePicker.Current.PickFile();

    if (file != null)
    {
        fileLabel.Text = "first probleme here";
    }
}

public async Task SendSMTPMail(string numero, string heure, string retard, string motif)
{
    var message = new MailMessage();
    var smtpServer = new System.Net.Mail.SmtpClient("smtp.gmail.com", 587);
    message.From = (new MailAddress("***"));
    message.To.Add("***");
    message.Subject = ***;
    message.Body = ***;

    message.Attachments.Add("second probleme here");

    smtpServer.Credentials = new NetworkCredential("***", "****");
    smtpServer.UseDefaultCredentials = false;
    smtpServer.EnableSsl = true;
    smtpServer.Send(message);
    await DisplayAlert("", "Email Envoyé", "Ok");
}

1 个答案:

答案 0 :(得分:0)

关于第一个问题,您必须添加“ TO”电子邮件地址;

message.To.Add("your@email.com);

在第二部分中,您必须添加一个Attachment对象,您可以通过将路径传递到Attachmment来构建

 message.Attachments.Add(new Attachment("pathToAttachment"));