+1

Gửi Mail với file đính kèm sử dụng Swift

Chào mọi người, hôm nay mình sẽ viết bài hướng dẫn cách viết một ứng dụng có thể gửi mail và đính kèm file csv. Hiện nay việc chia sẻ file hoặc thu thập dữ liệu ngày càng phổ biến trong việc phát triển ứng dụng di động nói chung. Tuy nhiên để thực hiện một cách nhanh chóng và chính xác thì mình đã mất một chút thời gian để tìm hiểu. Đó cũng chính là lý do để mình viết bài chia sẻ này, hi vọng sẽ tiết kiệm thời gian cho các bạn ^^. Ngôn ngữ swift có hỗ trợ việc gửi mail thông qua một thư viện có sẵn đó là MessageUI. Tại đó, chúng ta có thể viết ra một function gửi Mail tới một địa chỉ nhập bằng tay, bằng cách gọi và show lên MFMailComposeController. Chúng ta cùng đi vào chi tiết nhé:

1. Tạo project

Bước đơn giản đầu tiên, hãy tạo 1 ứng dụng có 1 button ở giữa màn hình. Khi bấm lên thì sẽ show lên màn hình gửi mail

Các bạn có thể tham khảo cách tạo project tại đây

2. Import thư viện, khởi tạo data

Tại viewcontroller, chúng ta thêm thư viện MesageUI. Đồng thời khởi tạo 1 biến Data, sẽ làm file đính kém sau này. Và đừng quên thừa kế MFMailComposeViewControllerDelegate.

3. Tạo fìle CSV

Đây chính là file đính kèm. Chúng ta tạo theo format CSV làm ví dụ. Với kích thước tối đa lên tới 15M. Tuy nhiên ở ví dụ này chúng ta sẽ tạo 1 file đơn giản nhất

Bây giờ biến data mà chúng ta tạo ban đầu đã có giá trị. Tiếp theo là bước quan trọng nhất: Tạo màn gửi mail

4. Tạo MFMailComposeViewController

Mình sẽ tạo riêng hẳn 1 function để khởi tạo và setup. Lưu ý rằng file csv cũng sẽ phải được đính kèm luôn trong bước này. Bằng cách gọi:

//set attachment
            emailController.addAttachmentData(data!, mimeType: "text/csv", fileName: "Sample.csv")

Hàm chi tiết như sau:

5. Handle Show MFMailComposeViewController

Bước này rất đơn giản. Tại hàm action của button tạo ban đầu chúng ta viết như sau:

6. Kết quả

Chạy app lên máy thật chúng ta có:

Click vào button Share, màn MFMailComposeViewController sẽ hiện ra

Tới đây, chỉ cần nhập Mail và bấm gửi:

Và thành quả khi check mail:

Bài viết tới đây là kết thúc. Hi vọng ít nhiều sẽ giúp được các bạn giải quyết vấn đề của mình. Cám ơn các bạn đã đọc bài viết ^^


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí